【问题标题】:Kendo ui grid expand detailini row after refreshing the grid刷新网格后剑道ui网格展开detailini行
【发布时间】:2016-02-24 11:48:39
【问题描述】:

我知道这个问题已经发布了几次,我一直在阅读这些解决方案,但我需要一些帮助来弄清楚我缺少什么。

我想要的是主网格在 READ 调用后扩展最后一个扩展行,所以我读过 thisthis 但似乎没有任何效果,我的代码是这样的:

detailExpand: function (e) 
{
  var grid = $("#gridTimesheets").data("kendoGrid");
  expandedRowUid = e.masterRow.data('uid');
}

然后在我的主数据绑定函数上我有这个:

dataBound: function(e) 
{
  this.expandRow($('tr[data-uid=' + expandedRowUid + ']'));
}

刷新后似乎扩展行的唯一内容是:

this.expandRow(this.tbody.find("tr.k-master-row"));

但它会扩展所有行,我只想要 READ 方法之前的最后一行。

我在这里错过了什么?

【问题讨论】:

    标签: javascript kendo-ui kendo-grid


    【解决方案1】:

    请注意,无论何时呈现数据,都会重新创建所有 uid。所以你不能存储一个 old uid,因为它会丢失。我建议你存储行索引:

    detailInit: function(e) {
        $(e.detailCell).text("inner content");
        lastRowIndex = $(e.masterRow).index(".k-master-row");
    }
    

    然后在dataBound内按索引查找行:

    dataBound: function() {
        var row = $(this.tbody).find("tr.k-master-row:eq(" + lastRowIndex + ")");
        this.expandRow(row);
    }
    

    Demo

    【讨论】:

      【解决方案2】:

      在 DataBound 函数上添加 javascript 函数以展开按钮

       function dataBound() {
          this.tbody.find("tr.k-master-row td a.k-i-expand").attr('onclick','SetWidthOnExpand()')
      }
      
       function SetWidthOnExpand() {
         setTimeout(function () {
              $('.k-header').removeAttr('style');
              $('.k-selectable tbody tr td').removeAttr('style');
          },1000)
      }
      

      【讨论】:

        猜你喜欢
        • 2015-05-07
        • 2012-11-16
        • 2014-09-08
        • 2016-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-03
        相关资源
        最近更新 更多