Kendo UI网格编辑器模板Ajax下拉显示值字段而不是文本字段

时间:2014-12-04 14:58:34

标签: ajax asp.net-mvc kendo-grid kendo-dropdown

我有一个分级的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。

我错过了什么?

0 个答案:

没有答案