Kendo Grid - 重新排序包含两列包含相同数据的列

时间:2014-07-22 20:31:32

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

关于网格如何工作的一些背景知识:

我的网格正在使用.Sortable().Reorderable().Filterable().ColumnMenu()。在dataBound事件中,网格保存网格状态(列顺序,每页项目数,当前分页页面和列排序[asc和desc])。当用户返回该页面时,当一些初始化Javascript在网格上进行查询时,他们的设置会在网格中重新加载。

当我有两列相同的数据时,我的问题就开始发挥作用了:

@(Html.Kendo().Grid<GridDataType>()
    .Name("ActiveThreats_Grid")
    .AutoBind(false)
    .Columns(columns =>
    {
      columns.Bound(r => r.Id).Title("<input id='checkAll', type='checkbox', class='check-box' />")
          .Sortable(false)
          .ClientTemplate("<input type='checkbox' class='check_row' id='#= Id#' />")
          .Filterable(false);

      columns.Bound(r => r.OtherField).Title("Other Field");

      columns.Bound(r => r.Id).Title("ID").Hidden(true);
    })
    .Resizable(resize => resize.Columns(true))
    .Scrollable()
    .Sortable()
    .Reorderable(reorder => reorder.Columns(true))
    .Filterable()
    .ColumnMenu()
    .DataSource(dataSource => dataSource
        .Ajax()
        // Other HtmlHelpers here
    )

我注意到的是,如果我使用相同的data-field属性并且我使用的是.Reorderable() HtmlHelper,则网格会将第一个r.Id列重新排序到同一位置出现第二个r.Id列。

问:是否有HtmlHelper或更改data-field属性输出的方法,以防止.Reorderable()将两个相同的列排列在一起?

0 个答案:

没有答案