单元格中自定义下拉列表的网格示例 - 如何呈现下拉列表?

时间:2016-10-04 15:12:08

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我尝试从用于在网格行的下拉列表中显示预定义项目列表的编辑器模板进行转换。这是有效的,但我需要为不同的网格定制的列表,因为我的应用程序的不同区域之间的数据不一样。

所以我正在查看客户端模板并以某种方式定义自己的模板。

在这个例子中,我不确定视图中使用“类别”列表的位置。
这是否在本例中使用? 由于具有列表的“嵌套”属性,下拉列表如何在行中呈现?

http://demos.telerik.com/aspnet-mvc/grid/editing-custom

private void PopulateCategories()
{
    var dataContext = new SampleEntities();
    var categories = dataContext.Categories
                .Select(c => new CategoryViewModel {
                    CategoryID = c.CategoryID,
                    CategoryName = c.CategoryName
                })
                .OrderBy(e => e.CategoryName);

    ViewData["categories"] = categories;
    ViewData["defaultCategory"] = categories.First();            
}

这条线我想知道:
     ViewData [“categories”] =类别;

为什么需要它以及使用它?我看到在控制器或视图中都没有使用它 - 除非读取操作默认使用它或某种约定?

1 个答案:

答案 0 :(得分:1)

ViewData["categories"]用于编辑器模板。此文件未显示在演示站点上,但您可以在安装程序应该具有的脱机演示中看到它:

  

/Views/grid/EditorTemplates/ClientCategory.cshtml

以下是内容:

@model Kendo.Mvc.Examples.Models.CategoryViewModel

@(Html.Kendo().DropDownListFor(m => m)
    .DataValueField("CategoryID")
    .DataTextField("CategoryName")
    .BindTo((System.Collections.IEnumerable)ViewData["categories"])
)

更多信息:

http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/templating/editor-templates