剑道网格的内联剑道下拉值不具有约束力

问题描述

我只是想创建一个带有内联剑道下拉菜单的剑道网格。像下面这样

example 1

example 2

enter image description here

我保持数据库值如下

enter image description here

所以,SampleModel,我是这样创建的,我只在 DB 中保留 TypeId

public class SampleModel
{
    public int Id { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }


    public int TypeId { get; set; }     

    public string TypeName{ get; set; }

}

public class ListItem 
{
    public int Id { get; set; }
    public string Name { get; set; }
}

这是包含 EditorTemplate 名称的网格代码片段

                @(Html
                    .Kendo()
                    .Grid<SampleModel>()
                    .Name("grid")
                    .Columns(columns =>
                    {
                        columns.Bound(p => p.Name);               
                        columns.Bound(e => e.TypeId).EditorTemplateName("Type").Title("Type").ClientTemplate("#:TypeName#");
                        columns.Bound(p => p.Description);

                        columns.Command(p =>
                        {
                            
                            p.Edit();
                            p.Destroy();
                        });

                    })
                    .ToolBar(t =>
                    {
                        t.Create();
                    })
                    
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .Model(m =>
                        {
                            m.Id(mr => mr.Id);
                            
                        })                                
                        .Create(cr => cr.Action("Create","Sample"))
                        .Read(read => read.Action("Read","Sample"))
                        .Update(upd => upd.Action("Update","Sample"))
                        .Destroy(dest => dest.Action("Delete","Sample"))
                    )
        )

这是我的编辑器模板代码片段

@using System.Collections
@model System.Int32
@(Html.Kendo().DropDownList().BindTo((IEnumerable)ViewBag.Types).DataValueField("Id").DataTextField("Name").Name("TypeId"))

所以我实现了如下代码

    public ActionResult Read([DataSourceRequest] DataSourceRequest request)
    {
       
        ViewBag.Types = GetTypes();        
        var res = sampleService.GetDB_Data();          

        return Json(res.Data.ToDataSourceResult(request));
    }  

    public List<ListItem> GetTypes() 
    {
        List<ListItem> types = new List<ListItem>();

        types.Add(new ListItem()
        {
            Id = 1,Name = "Good"
        }
        );
        types.Add(new ListItem() 
        {
            Id = 2,Name = "Bad"
        }
        );
        return types;
    }

但这不是映射或未加载这些图像上看到的下拉列表

未映射值,如图所示,

enter image description here

甚至没有加载kendo下拉菜单,在后端我可以看到GetTypes()返回值,但是当涉及到前端时,它是这样显示的

enter image description here

感谢是否可以显示此错误或所需的修改

解决方法

我相信这个问题是由于编辑器的名字造成的。不要显式指定名称,而是使用 DropDownFor 帮助器并让小部件为您生成名称。

例如

@(Html.Kendo().DropDownListFor(x=> x).BindTo((IEnumerable)ViewBag.Types).DataValueField("Id").DataTextField("Name"))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...