如何有条件地隐藏或显示Kendo网格中的列

时间:2016-07-01 04:53:31

标签: jquery kendo-ui kendo-grid

如果我们必须在kendo网格中隐藏一列,我们通常会写这个。

 { field: "Name", hidden: true },

但我想在隐藏中使用条件。真或假将来自另一个领域的数据库,即HideShow。如果我可以设置它,有没有选择。

 { field: "Name", hidden: HideShow},

从数据库获取记录时将设置HideShow = true / false。

我已经尝试过隐藏并通过jquery显示但是它在显示时扭曲了网格布局。 Hide工作正常。

2 个答案:

答案 0 :(得分:1)

为网格定义DataBound事件,并决定隐藏列。以下是一个示例:

<script>
var grid = $("#myGrid").data("kendoGrid");
grid.bind("dataBound", grid_dataBound);
<script>
function grid_dataBound() {
   if (MustBeHide)
      this.hideColumn("Name");
}
</script>

这将隐藏“名称”列。

您还可以按列索引隐藏列,如下所示:

function grid_dataBound() {
   if (MustBeHide)
      this.hideColumn(1);
}

答案 1 :(得分:0)

您可以在Edit: onGridEditing上执行此操作。以下是功能:

 function onGridEditing(arg) {
        if (true) {
            $('label[for=Name]').hide();
            $('div[data-for=DesignationID]').hide();
        }
        else {
            $('label[for=Name]').show();
            $('div[data-for=DesignationID]').hide();
        }
 }

希望这会对你有所帮助。