Kendo UI Grid选择与ComboBox EditorTemplate中的ClientTemplate相同的值

时间:2014-05-14 08:27:50

标签: c# asp.net-mvc combobox kendo-ui kendo-grid

我有一个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的内容似乎不起作用。可能不是最好的修复,但它现在可以正常工作。

1 个答案:

答案 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;}

}