【问题标题】:Kendo Grid inside Kendo TabStrip has unlimited heightKendo TabStrip内的Kendo Grid具有无限的高度
【发布时间】:2015-06-24 08:19:23
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    有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);
    })();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多