我有一个KendoUI Grid,我正在显示很多信息。为了简单起见,我在这里进行了修改。在其中一个列上,当它处于显示模式时,我有一个名称PayManager。当我单击编辑时,名称列将被调度为ComboBox。
一切正常。但是,有一件事我无法解决该怎么做。我想这样,当你点击ComboBox中的Edit the Selected值时,与ClientTemplate中显示的相同。
感谢您提前提供任何帮助
网格
@(Html.Kendo().Grid((IEnumerable<TestDirectoryManager.Models.TestDirectoryDetail>) ViewBag.TestDetails)
.Name("TestGrid")
.HtmlAttributes(new { style = "height:850px;" })
.Columns(columns =>
{
columns.Bound(m => m.PayManagerId).Width(150).Title("PM").Template(p => p.PayManager).EditorTemplateName("PayManagerDropDown");
columns.Command(command => command.Edit()).Title("Actions");
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Filterable()
.Groupable()
.Pageable() // Enable pageing
.Scrollable(scr=>scr.Height("auto"))
.Sortable() // Enable sorting
.DataSource(dataSource => dataSource
.Server()
.PageSize(15)
.Model(model =>
{
model.Id(p => p.SomeId);
model.Field(m => m.PayManagerId);
})
// Configure CRUD -->
.Update(update => update.Action("Update", "Home"))
// <-- Configure CRUD
))
ComboBox - PayManagerDropDown.cshtml
@(Html.Kendo().ComboBox()
.Name("PayManagerId")
.Filter(FilterType.StartsWith)
.HtmlAttributes(new {style = "width:auto;"})
.Placeholder("Type beginning of name to select new pay manager")
.DataTextField("FullName")
.DataValueField("userid")
.AutoBind(true)
.Suggest(true)
.DataSource(source => source.Read(read => read.Action("GetUsers", "Home")).ServerFiltering(false)))
修改
最后,我通过将Shaz的一些建议与我自己的一些变化相结合来实现这一目标。
但是,在我将DataSource从.Server更改为.DataSource(dataSource => dataSource.Ajax()
之前,有关ClientTemplate的内容似乎不起作用。可能不是最好的修复,但它现在可以正常工作。
答案 0 :(得分:0)
试试这个......
columns.Bound(m => m.PayManagerId).Width(150).Title("PM")
.Template(p => p.PayManager).EditorTemplateName("PayManagerDropDown")
.ClientTemplate("#:PayManagerId.FullName#");
*****Grid Model ****************
public class TestDirectoryDetail{
public PayManagerListModel PayManagerId {get; set;}
}
public PayManagerListModel {
public int userid {get; set;}
public string FullName {get; set;}
}