【问题标题】:Kendo Grid's Inline Kendo Dropdown values not binding剑道网格的内联剑道下拉值不绑定
【发布时间】:2021-02-12 09:50:35
【问题描述】:

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

example 1

example 2

我保留如下数据库值

所以,SampleModel,我是这样创建的,我只在数据库中保留 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; }
}

这是包含的网格代码sn-p,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"))
                    )
        )

这是我的编辑器模板代码 sn-p

@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;
    }

但这不是映射或加载这些图像上看到的下拉菜单

未映射此图像中看到的值,

甚至不加载剑道下拉菜单,在后端我可以看到 GetTypes() 返回值,但是当涉及到前端时,它显示如下

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

【问题讨论】:

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


    【解决方案1】:

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

    例如

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

    【讨论】:

    • 不,这不起作用Value cannot be null. Parameter name: expression 删除名称后出现此错误
    • 请注意,我使用 DropDownListFor 助手,它接受谓词作为参数,而不是没有参数的 DropDownList。 DropDownListFor 不需要名称,因为它是从模型生成的。
    猜你喜欢
    • 2017-02-06
    • 2018-07-08
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多