#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;" });