在数据绑定后保持kendo细节网格扩展

时间:2017-04-21 23:56:12

标签: javascript data-binding kendo-ui grid detail

这是我当前的网格和detailExpand / Databind。您将看到我尝试获取uid,然后在触发数据绑定后展开该行。 expandedRowUid控制台日志未定义。有人可以帮我正确获取uid或提供替代解决方案,以便一旦数据绑定被触发,细节网格不会崩溃或在数据绑定后再次展开。

   function teacherHierarchyGrid() {
       $("#teacherGrid").kendoGrid({
           detailInit: detailInit,
           selectable: true,
           dataBound: function () {
             console.log("Bind occured")
             this.expandRow($('tr[data-uid=' + expandedRowUid + ']'));
           },
          detailExpand: function (e)
             expandedRowUid = e.masterRow.data('uid');
             console.log(expandedRowUid)
         },
     })
  }

**编辑**新代码仍无效

    var expandedRow;
    function teacherHierarchyGrid() {
        $("#teacherGrid").kendoGrid({
            detailInit: detailInit,
            selectable: true,
            autoBind: false,
            dataBound: function(e){
                 if (expandedRow) {
                     console.log(expandedRow);
                     e.sender.expandRow($('tr[data-uid=' + expandedRow + ']'));
            }
          },
            detailExpand: function (e) {
                 expandedRow = e.sender.dataItem(e.masterRow).uid;
          },
      })
   }

1 个答案:

答案 0 :(得分:0)

首先,由于detailExpand函数中缺少{},它可能会记录未定义:

detailExpand: function (e) {
             expandedRowUid = e.masterRow.data('uid');
             console.log(expandedRowUid);
             }

在dataBound函数中,您在console.log("Bind occured")

之后缺少分号

第三个可能是在重新创建行之后与该行关联的uid不同:在数据绑定之后,同一行可能具有不同的uid,因为它是由窗口小部件生成的。尝试引用行来扩展,通过dataItem Id。