【问题标题】:kendo grid virtual scrolling last row is missing剑道网格虚拟滚动最后一行丢失
【发布时间】:2015-08-13 07:27:53
【问题描述】:

我正在开发一个剑道网络应用程序。我有一个剑道网格并启用了虚拟滚动。滚动网格时缺少最后一行,但我可以通过过滤看到该记录。在 IE 中它运行良好。

总记录数:374

如果我在一个页面中显示 11 条记录,它在 IE 和 chrome 中运行良好,因为 374/11 是 34(不是小数)。如果在 chrome 中缺少将总行数更改为 12 最后一行,但 IE 仍然是完美的.我遇到了一个问题,最初滚动条不可见,但我使用下面的代码解决了这个问题。

function setVisibleScrollHeight() {
        var vs = grid.element.find('.k-grid-content').data('kendoVirtualScrollable');
        grid._rowHeight = gridRowHeight;
        vs.refresh();
    }

在网格初始化后调用。初始滚动现在可以了。最后一行丢失有什么帮助吗?

【问题讨论】:

    标签: jquery angularjs angularjs-directive kendo-ui kendo-grid


    【解决方案1】:

    虚拟滚动依赖于平均行高的计算,用于计算假垂直滚动条的高度。

    jQuery 解决方案

    dataBound: function () {
      window.setTimeout(function(){
        var ht=0;jQuery('#grid').find("tr[role='row']").each(function(){ 
        ht+=parseInt($(this).height()); 
    }); 
    // ht - total rows height
    jQuery("#grid").find(".k-scrollbar-vertical").find("div").height(ht);     /// set kendo scrollbar height to ht 
    } ,1000);  
    } //databound ends
    

    css解决方案:

      #Grid  .k-grid-content  td
    {
      height: 100px;
    }
    

    关于 css 的更多细节: http://www.telerik.com/forums/last-row-gets-cut-off-when-using-virtual-scrolling-and-setting-the-grid-height-after-filtering#kBSbnkqkSU6AG9kBmm1KYA

    【讨论】:

    • 虽然 Telerik 推荐,但如果您最终得到一个高度超过输入的单元格,那么 css 解决方案就会出现问题。另一种选择是设置white-space: nowrap;。不过,您的 jQuery 解决方案非常好。我想知道除了 dataBound 之外是否还有其他事件可以绑定以消除设置的超时。
    【解决方案2】:

    我也遇到过类似的问题。指定网格高度后解决。

    height:400
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 2015-07-28
      • 2013-07-06
      相关资源
      最近更新 更多