Столбец шаблона сетки пользовательского интерфейса Kendo

#c# #jquery #asp.net-mvc #kendo-ui #kendo-grid

#c# #jquery #asp.net-mvc #kendo-ui #kendo-grid

Вопрос:

У меня есть эта сетка на моей странице, и она отлично работает :

     @(Html.Kendo().Grid<SalaryAdmin.Classes.ReturnedCompareHoghough>()
    .Name("Grid")
    .EnableCustomBinding(true)
    .BindTo(Model.Comparehoghough)
    .Columns(columns => {
        columns.Template(@<text><input type="text" name="@item.MelliCode" class="sel" /></text>).Width(50);

        columns.Bound(o => o.MomayezFinalTax).Format("{0:n0}").Title("مالیات قابل پرداخت پس از اعمال معافیت موضوع ماده 92 (ویژه مناطق کمتر توسعه یافته) نظر ممیز");
        columns.Bound(o => o.FinalTax).Format("{0:n0}").Title("مالیات قابل پرداخت پس از اعمال معافیت موضوع ماده 92 (ویژه مناطق کمتر توسعه یافته)");

    })
    .Pageable()
    .Navigatable()        
    .DataSource(dataSource => dataSource.Server().Total((int)ViewData["totalMoadi"]))
)
 

Я заменяю эту сетку на эту версию :

    @(Html.Kendo().Grid<SalaryAdmin.Classes.ReturnedCompareHoghough>()
                    .Name("Grid").EnableCustomBinding(true).BindTo(Model.Comparehoghough)

    .Columns(columns =>
    {
        columns.Template(@<text><input type="text" name="@item.MelliCode" class="sel" /></text>).Width(50);

        columns.Bound(o => o.MomayezFinalTax).Format("{0:n0}").Title("مالیات قابل پرداخت پس از اعمال معافیت موضوع ماده 92 (ویژه مناطق کمتر توسعه یافته) نظر ممیز").Width(200).ClientFooterTemplate("#=sum#");
        columns.Bound(o => o.FinalTax).Format("{0:n0}").Title("مالیات قابل پرداخت پس از اعمال معافیت موضوع ماده 92 (ویژه مناطق کمتر توسعه یافته)").Width(200).ClientFooterTemplate("#=sum#");
    })
    .Pageable()
   .Scrollable(scr => scr.Height(420))
                     .DataSource(dataSource => dataSource.Ajax().Aggregates(
                         ag =>
                         {
                             ag.Add(h => h.MomayezFinalTax).Sum();
                             ag.Add(h => h.FinalTax).Sum();
                         }
                         ).Read(read => read.Action("ChangeHoghough_Read", "list", new { id = Model.list.GuidList })))
)
 

он тоже отлично работает, за исключением того, что текстовое поле не отображается. возможно ли отображать текст в второй версии? Если да, как я могу получить введенное значение в обратной передаче? Я пытался попасть в событие подкачки, но в событии подкачки публикуется код linq.

Ответ №1:

Я предполагаю, что смысл разных сеток заключается в переходе от привязки сервера к привязке Ajax. Текстовое поле не отображается, поскольку вы используете шаблон сервера вместо шаблона на стороне клиента. Попробуйте это для столбца:

 columns.ClientTemplate("#: <input type='text' name='MelliCode' class='sel' /> #")...
 

Синтаксис немного отличается, вот обзор.
Я не уверен, но параметр bindTo может означать, что вы получаете данные дважды при начальной загрузке.

Комментарии:

1. Я хочу получить значение, введенное пользователем в текстовом поле. Как это можно сделать?

2. Вы хотели получить значение на стороне клиента или на стороне сервера? Если на стороне сервера, как вы отправляете обратно на сервер? В вашем коде отображается только сетка…

3. Я хочу получить его на стороне сервера. я хочу изменить поле MomayezFinalTax в соответствии со значением, введенным пользователем.

4. Я хочу получить его на стороне сервера. я хочу изменить поле MomayezFinalTax в соответствии со значением, введенным пользователем. Я поместил кнопку, которая отправила обратно на контроллер, но datarequest был нулевым или не содержал данных сетки.

5. Мне нужно было бы увидеть код с кнопкой в нем, чтобы иметь возможность помочь. Если вы начнете новый вопрос с нового кода, который вы упомянули, я посмотрю на него. До тех пор это может помочь: демонстрации. telerik.com/aspnet-mvc/grid/editing-inline

Ответ №2:

Вы хотите что-то вроде этого.

 columns.Template(c => "<input type='text' name='AdminEmail' value='"   c.Email  "'> ").Title("").Width(140).HtmlAttributes(new { style = "text-align:center; white-space: nowrap; text-decoration: underline;" }).HeaderHtmlAttributes(new { style = "text-align:center; white-space: nowrap;" });