【问题标题】:When attempting to change edit mode for a telerik grid to anything other than 'InLine' I get an error about passing in the wrong model type当尝试将 Telerik 网格的编辑模式更改为“内联”以外的任何内容时,我收到有关传递错误模型类型的错误
【发布时间】:2012-01-04 03:28:56
【问题描述】:

我这样创建网格:

Html.Telerik().Grid<myapp.Date>("dates")
    .Name("MyGrid")
    .Pageable(paging => paging.PageSize(10))
    .Sortable()
    .Filterable()
    .Groupable()
    .DataKeys(keys => keys.Add(c => c.id))
    .DataBinding(dataBinding =>
    {
        dataBinding.Ajax()
        .Select("_SelectAjaxEditing", "Dates")
        .Insert("_InsertAjaxEditing", "Dates")
        .Update("_SaveAjaxEditing", "Dates")
        .Delete("_DeleteAjaxEditing", "Dates");
    })
    .ToolBar(commands => commands.Insert())
    .Columns(columns =>
    {
        columns.Bound(o => o.name);
        columns.Bound(o => o.date1);
        columns.Command(commands =>
        {
            commands.Edit().ButtonType(GridButtonType.Text);
            commands.Delete().ButtonType(GridButtonType.Text);
        });
    })
    .Editable(editing => editing.Mode(GridEditMode.InLine))
    .Render();
    %>

它运行良好,但如果我将 GridEditMode 更改为 InLine 以外的任何内容,我会收到以下错误:

传入字典的模型项的类型是“myapp.Date”,但是 这个字典需要一个类型的模型项 'System.Nullable`1[System.DateTime]'。

网格中有一个system.DateTime字段,是这个错误的原因吗?

【问题讨论】:

  • 你的模型是什么样子的?似乎您正在将 DateTime 传递给期望 DateTime? 的方法
  • 要尝试回答这个问题,从控制器和模型中查看您的相关代码会有所帮助。
  • 没有模型或控制器,这变得有点棘手。您是否尝试过将此 DateTime 字段设置为可为空,或者使用 [Required] 对其进行装饰?
  • @CarlB 我尝试重新制作模型并给它一个除日期以外的名称(我称之为 ZeDate),相同的模型,相同的表格,相同的所有内容,除了不同的名称。它工作没有任何问题。这可能是一个错误吗?

标签: c# asp.net asp.net-mvc-3 telerik telerik-grid


【解决方案1】:

我想这是因为您作为模型传递的日期不可为空,而模型所需的日期可以为空,请将模型类型更改为“DATETIME?”后尝试此操作。

注意:如果您要声明属性,请将其声明为 DateTime?,因为您的字段可以为空。

谢谢

问候,

达瓦尔舒克拉

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多