C# MVC剑道网格多选列

C# MVC剑道网格多选列,c#,asp.net-mvc,telerik,kendo-grid,kendo-asp.net-mvc,C#,Asp.net Mvc,Telerik,Kendo Grid,Kendo Asp.net Mvc,我有一个剑道mvc网格 我希望其中一列是列表a值 例如,我的数据对象: public TestObject() { public int TestID {get; set;} public string MyTest {get; set;} public string MyCategory {get; set;} public string Description {get; set;} } 剑道格网: @(Html.Kendo().Grid<MyProject.Busi

我有一个剑道mvc网格

我希望其中一列是列表a值

例如,我的数据对象:

public TestObject()
{
  public int TestID {get; set;}
  public string MyTest {get; set;}
  public string MyCategory {get; set;}
  public string Description {get; set;}
}
剑道格网:

@(Html.Kendo().Grid<MyProject.BusinessObjects.TestObject>()
        .Name("myGrid")
        .Columns(col => 
        {
            col.Bound(x => x.TestID);
            col.Bound(x => x.MyTest);
            col.Bound(x => x.MyCategory);
            col.Bound(x => x.Description);
            col.Command(x => { x.Edit(); x.Destroy(); });
        })
        .Selectable()
        .Scrollable()
        .ToolBar(x => x.Create())
        .Sortable()
        .Editable(e => e.Mode(GridEditMode.PopUp))
        .Pageable(p => p
            .Refresh(true)
            .PageSizes(true)
            .ButtonCount(5))
        .DataSource(d => d
            .Ajax()
            .Read(r => r.Action("GetData", "MyController"))
            .PageSize(20)
            .Model(m => 
            {
                m.Id(x => x.TestID);                    
            })      
            .Update("UpdateData", "MyController")
            .Create("CreateData", "MyController")
            .Destroy("DeleteData", "MyController")
        )
   )
@(Html.Kendo().Grid())
.Name(“myGrid”)
.列(列=>
{
col.Bound(x=>x.TestID);
col.Bound(x=>x.MyTest);
col.Bound(x=>x.MyCategory);
col.Bound(x=>x.Description);
col.Command(x=>{x.Edit();x.Destroy();});
})
.可选()
.Scrollable()
.ToolBar(x=>x.Create())
.Sortable()
.Editable(e=>e.Mode(GridEditMode.PopUp))
.Pageable(p=>p
.刷新(真)
.页面大小(真)
.按钮计数(5))
.DataSource(d=>d
.Ajax()
.Read(r=>r.Action(“GetData”、“MyController”))
.页面大小(20)
.Model(m=>
{
m、 Id(x=>x.TestID);
})      
.Update(“UpdateData”、“MyController”)
.Create(“CreateData”、“MyController”)
.Destroy(“删除数据”、“MyController”)
)
)
现在,当用户添加或编辑记录时,我希望MyCategory显示有效值的列表。(基本上MyCategory是一个FK,但在DB中不是这样强制的)


我如何使用剑道格网来实现这一点?我试图遵循Kendo online的示例,但是当他们创建ViewState对象以及网格如何与特定对象交互时,我缺少了连接
(剑道网格编辑自定义编辑器示例)

它不必在DB中为fk

columns.ForeignKey(p => p.MyCategory, (System.Collections.IEnumerable)ViewData["MyCategory"], "Id", "MyCategoryText");
在控制器索引页面中,您必须填充viewdata。您可以从数据库中获取数据,也可以对值进行硬编码

 public ActionResult Index()
    {            
        ViewData["MyCategory"] =  GetMyCategoryList();
        return View();
    }

 public List<SelectListItem> GetMyCategoryList()
    {
        List<SelectListItem> lstMyCategory = new List<SelectListItem>();
        var data = new[]{
             new SelectListItem{ Id=1,MyCategoryText="Federal"},
             new SelectListItem{ Id=2,MyCategoryText="General"},
             new SelectListItem{ Id=3,MyCategoryText="Cash"},                 
         };
        lstMyCategory = data.ToList();
        return lstMyCategory;
    }
public ActionResult Index()
{            
ViewData[“MyCategory”]=GetMyCategoryList();
返回视图();
}
公共列表GetMyCategoryList()
{
List lstMyCategory=新列表();
var数据=新[]{
新建SelectListItem{Id=1,MyCategoryText=“Federal”},
新建SelectListItem{Id=2,MyCategoryText=“General”},
新建SelectListItem{Id=3,MyCategoryText=“Cash”},
};
lstmycontegory=data.ToList();
返回类别;
}

这几乎实现了我想要做的事情。它强制执行数据,因此用户无法保存胭脂类别。但是,从添加/编辑中,我希望类别字段是这些值的下拉列表,如剑道示例中所示。