3

起初,我的网格是这样定义的:我单击搜索按钮,然后网格读取数据并按类分组:

@(Html.Kendo().Grid<Student>()
    .Name("StudentGrid")
    .Scrollable()
    .Columns(columns =>
    {
        columns.Bound(o => o.Class).Groupable(true).Title("Class");          
        columns.Bound(o => o.Name).Groupable(true).Title("Name");
        columns.Bound(o => o.Point).Groupable(true).Title("Point");
    }).AutoBind(false)
    .DataSource(dataSource => dataSource
    .Ajax().Group(i => i.Add(a => a.Class))
    .Read(read => read.Action("GetStudentPoint", "StudentControl"))
    .Events(events => events.Error("error_handler"))
))

现在我想让网格分组为假并隐藏类列。这意味着,我不想对学生数据进行分组并隐藏班级列:

$("#StudentGrid").data("kendoGrid").Groupable( false );
$("#StudentGrid").data("kendoGrid").hideColumn(0);
$("#StudentGrid").data("kendoGrid").dataSource.read();

我的代码有什么问题?

4

1 回答 1

5

即使网格有 groupable = false,并且如果 dataSource 上仍然有一个组,输出也会显示为分组。如果你只是添加

$("#StudentGrid").data("kendoGrid").dataSource.Group("");

在 dataSource.read() 之前;这应该清除任何分组。只需将 grid.groupable 设置为 false 只会关闭将列标题拖到按区域分组的功能。

隐藏列应该可以工作,但之后您可能需要在网格上调用刷新。

$("#StudentGrid").data("kendoGrid").refresh();

这是一个小示例(不使用 MVC,但仍应适用)。 http://jsbin.com/iNagENo/2/edit

于 2013-09-24T22:19:04.080 回答