我有一个分级的Kendo UI网格(MVC服务器助手),其中一列是FK查找,后面有一个编辑模板,可以对值进行AJAX查找。所有这一切都很完美。什么不起作用的是列显示ID(下拉列表中的数据值字段)而不是文本(下拉列表中的数据文本字段)。
这里是网格
@(Html.Kendo().Grid<ReceivingLogItemResponse>()
.Name("grid_#=GID#")
.Editable(e => e.Mode(GridEditMode.InCell))
.Sortable()
.Columns( c=>
{
c.Bound(i => i.GID).Hidden();
c.Bound(i => i.SerialNumber);
c.Bound(i => i.PartNumber);
c.Bound(i => i.Description);
c.Bound(i => i.Quantity);
c.Bound(i => i.ItemLotNumber).Title("Lot");
c.Bound(i => i.StatusId).Title("Status");
c.Bound(i => i.CategoryId).EditorTemplateName("ClientCategory");
c.Bound(i => i.LocationCode).Title("Location");
c.Bound(i => i.Comments);
c.Command(e => e.Custom("Add").Click("doItemAdd"));
})
.ToolBar(t => t.Save())
.Selectable(s => s.Type(GridSelectionType.Row))
.DataSource(dataSource => dataSource
.WebApi()
.Model(m =>
{
m.Id(i => i.GID);
m.Field(i => i.GID).Editable(false);
})
.Batch(true)
.ServerOperation(false)
.Read(read => read.Url(apiWrapper.receivingLogItemUrl() + "&receivingLogId=#=GID#").Type(HttpVerbs.Get))
.Update(u => u.Url(apiWrapper.receivingLogItemUpdateUrl()).Type(HttpVerbs.Post))
)
.Events(e => e.DataBound("itemDataBound"))
.ToClientTemplate()
)
这里是EditorTemplate(ClientCategory)
@(Html.Kendo().DropDownList()
.Name("CategoryId")
.DataTextField("Code")
.DataValueField("CID")
.AutoBind(true)
.DataSource(ds => ds.Read(a => a.Url(apiWrapper.clientCategoryUrl()).Data("getClientCategoryID()"))))
该列显示CID字段,直到您输入CID字段进行编辑,当下拉列表显示时,该字段填充了正确的值。当你去另一个领域时,它会回到CID。
我错过了什么?