有条件地扩展kendo网格中的行

时间:2015-07-13 14:18:49

标签: javascript jquery kendo-ui kendo-grid

在我的Kendo网格中,我试图检查我的一个列字段是真还是假。如果为true,则应展开行,如果为false,则行应保持折叠状态。我对列的代码定义是:

{
  field: "Comment",
  title: txt.TXT_COMMENT,
  template: '<input type="checkbox" #= Comment ? "checked" : "" # disabled="false" ></input>',
},

我在dataBound中的代码条件,用于检查是否有数据:

dataBound: function (e) {
  var data = this.dataItem;
  if (data.Comment == 1) {
    this.expandRow(this.tbody.find("tr.k-master-row"));
  }
  f_OnDataBound(e);
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

使用数据绑定事件,您正朝着正确的方向前进。您需要做什么,遍历所有行并检查特定的模型属性并扩展或不扩展该特定行。

var grid = $("#grid").data("kendoGrid");       
var data = grid.dataSource.data();
var len = data.length;

for(var i = 0; i < len; i++) {
    var row = data[i];
    if(row.Comment == '1') { // checks for the value of the Comment property
        grid.expandRow("tr[data-uid='" + row.uid + "']"); // expands the row with the specific uid
    }
}

我对此进行了测试,效果很好。我无法知道Comment有什么问题,如果需要,由你来控制和调整javascript函数。

修改

我创建了a fiddle来演示上述策略。在示例中,dataBound函数查找属性“name”并展开行,如果它是“Sally”