Kendo TabStrip内部的Kendo Grid具有无限高度

时间:2015-06-24 08:19:23

标签: javascript html5 kendo-ui kendo-grid kendo-tabstrip

我有一个放置在页面上的Kendo Grid,它跨越整个可见页面(宽度和高度)。如果行太多,则网格会显示滚动条。

但是当我将网格放在一个Kendo TabStrip(高度为100%)内时,网格的高度变得无限制,滚动没有显示,页面外的行不可见(无法滚动到)。

如何将网格限制为tabtrip的高度?

1 个答案:

答案 0 :(得分:1)

找到这个问题很棘手。这是TabStrip的问题,或者更确切地说是TabStrip vs Grid问题。

网格始终将其大小调整为容器的大小。 TabStrip的标签始终根据内容进行调整。

有3个步骤可以解决它:

  • TabStrip的标签必须将高度设置为100%;
  • 设置TabStrip的固定高度,以便网格知道如何计算其高度。在我的情况下,必须在DOMContentLoaded事件中完成,在生成整个html之后但在加载网格之前;
  • 在设置或更改父级的大小时请求网格调整大小;

示例页面代码:

<div id="header">
    Sample page header to show how to compute content's height
</div>
<div id="content">
   <div id="myTabStrip" data-role="tabstrip">
        <ul>
            <li id="Tab1" class="k-state-active">aaaa</li>
            <li id="Tab2">bbbbb</li>
        </ul>
        <div style="height: 100%">
            ...grid1 definition...
        </div>
        <div style="height: 100%">
            ...other stuff...
        </div>
    </div>
</div>

JavaScript代码:

 (function () {
    function resize() {
        var h = $("#content").height() - $("#header").height();
        $("#myTabStrip").height(h);
        $("#grid1").data('kendoGrid').resize();
    }

    $(document).one("DOMContentLoaded", resize);
    $(window).on("resize", resize);
})();

(上面的代码不是生产就绪的。)