0

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

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

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

4

1 回答 1

1

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

Grid 总是根据容器的大小调整它的大小。TabStrip 的 Tab 总是根据内容进行调整。

有3个步骤来解决它:

  • TabStrip 的 Tabs 必须将高度设置为 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);
})();

(上面的代码还没有准备好生产)。

于 2015-06-24T08:19:23.427 回答