我所试图做的事:
我有一个表格与剑道UI控件像页面上半年的DatePicker(S),下拉列表(S),NumericTextBox(S)
下半场有一个剑道UI MVC网格控制
- 此剑道UI网格控制具有8个列,其中两列具有剑道下拉列表(EditorTemplate)和CheckBox(EditorTemplate)。
- 剑道UI网格控制阿贾克斯结合。
当点击保存按钮,从剑道UI的所有值控制(前半部分)和剑道UI电网控制(后半)一起被发布为经由“Ajax的邮报” JSON对象到控制器。
我使用的模型上述过程结合
问题还是我面临的问题:
与其他剑道UI控件形式的前半部分被适当地发布它们的值到控制器,但是其中作为剑道UI网格由具有张贴一些列的值的一些问题
我怀疑你想要的网格作为窗体的一部分。 通常情况下,电网通过AJAX,而不是通过批量形式进行交互与其他控件提交 - 从形式解开它。 单单这可以节省你头疼。
上半场:
尝试使用剑道()。DatePickerFor(),剑道()。DropDownListFor(),等你并不需要通过请将.Name明确地命名这些剑道控件()。 这将帮助你与模型结合。
下半场:
使用非十进制另一种数据类型。 你认为是强硬? 尝试使用时间跨度类型时的一天,没有附加日期(成年男子哭了)。
你并不需要,通常情况下,布尔/复选框的EditorTemplate。 只要使用这个技巧(使用剃刀asuming您ARE,因为你没有留下代码)。
columns.Bound(b => b.IsActive).ClientTemplate("<input type='checkbox' ${ IsActive == true ? checked='checked' : ''} disabled />");
为网格的DDL最好的办法是
columns.ForeignKey(b => b.CustodianIdPrimary, Model.Custodians, "Id", "FullName").EditorViewData(new {ProjectId = Model.ProjectId}).EditorTemplateName("CustodianDropDownList");
凡Model.Custodians是所有可能的项目的列表。 然后您可以将EditorTemplate绑定名单,或让Ajax调用,如果你需要在这个特定的DDL的一个子集,这样的填充
@model int
@(Html.Kendo().DropDownList()
.Name(ViewData.TemplateInfo.GetFullHtmlFieldName(""))
.DataValueField("Id")
.DataTextField("FullName")
.OptionLabel("Unassigned")
.DataSource(dataSource => dataSource
.Read(read => read.Action("ReadProjectCustodiansDdl", "SysMaint", new {projectId = ViewData["ProjectId"]}))
)
)
但这里是剑道提供范例
@model object
@(
Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
)
注意,在我最初的columns.ForeignKey,也就是在这个eample用来传递整个列表使用EditorViewData参数。
祝好运!