关于网格如何工作的一些背景知识:
我的网格正在使用.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
列。
data-field
属性输出的方法,以防止.Reorderable()
将两个相同的列排列在一起?