Kendo UI Grid - MVC3中列的隐藏/显示

5

我的案例是一个搜索窗口,其中包含大约20个属性,用户可以选择指定搜索条件。每个属性都有一个相应的复选框,切换该属性是否包含在搜索结果中。搜索结果随后显示在kendo网格中。

以下是简化的代码,用于说明问题(kendo ui完整版本2012.2.710):

<input type="checkbox" onclick="fnShowHide(1);" name="showSearchColumn" id="checkShowField1"  />                                

<div id="example" class="k-content">
    <div id="kendoGridTest"></div>
</div>

<script>
function fnShowHide( iCol )
{
   $('#kendoGridTest').data("kendoGrid").options.columns[iCol].hidden = false;
   $('#kendoGridTest').data("kendoGrid").refresh();
}
</script>

从搜索返回数据的MVC3控制器方法是JsonResult类型(如下所示:jsonResultSearchResult):

$('#kendoGridTest').kendoGrid({
    dataSource: jsonResultSearchResult,
    schema: {
        model: {
            fields: {
                FirstName: { type: "string" },
                LastName: { type: "string" },
                Address: { type: "string" }
            }
        }
    },
    sortable: true,
    resizable: true,
    columns: [{
        field: "FirstName",
        width: 90,
        title: "First name"
    },
        {
            field: "LastName",
            width: 120,
            hidden: true,
            title: "Last name"
        },
        {
            field: "Address",
            width: 140,
            title: "Adr"
        }
    ]
});

执行搜索后,网格填充正确的数据,LastName确实被隐藏了。但是如果用户现在选中checkShowField1控件,我希望网格刷新并显示所有三列。但它没有这样做。 fnShowHide()不能完成任务。
我必须承认,在VS调试时,我在QuickWatch窗口中寻找任何类型的Columns集合。 fnShowHide中的集合包含从初始化网格时的正确数据,并且我能够操纵.hidden属性,但是网格仍然无法显示该列。
我还有点困惑动态隐藏/显示列是否受支持,但这个Telerik员工接受的答案看起来很有前途。
1个回答

17

如果想要在客户端使用JavaScript隐藏一个列,你可以使用 hideColumn()方法,如果想要显示该列,则可以使用 showColumn()方法。这两种方法有多个重载方式——你可以传递列的索引或者传递该列绑定的字段名称。

例如:

var grid = $('#GridID').data('kendoGrid');
grid.hideColumn(2);
//or show it
grid.showColumn("OrderDate") // lets say thats the field name of the same column

你链接的帖子展示了如何使用MVC包装器来隐藏/显示列,这与本文稍有不同。


谢谢。如果我想显示所有被隐藏的列,应该怎么做?即最好的方法是什么? - Rikin Patel
要显示所有列,您可以循环遍历它们for(var i=0;i<grid.columns.length;i++){ grid.showColumn(i); } - Petur Subev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接