是否可以使用基于父 div 大小而不是行数的 Dojo/Dijit DataGrid 自动高度功能?

2023-12-30

我有一个定期更新的数据网格,其中的行数随着时间的推移稳步增长。它位于父 div 内部,高度为屏幕的 60%。

如果我将自动高度设置为 5 行,则该表可以正常工作。添加第六行时,数据网格中会出现一个滚动条,我可以向上/向下滚动,并且标题保持固定在顶部并可见。不幸的是,一旦我拥有大量数据,这就会浪费空间——我有 60% 的屏幕高度可以使用,但一次只显示 5 行。

如果我将 autoheight 设置为 false,则出现的滚动条将附加到父 div。向上/向下滚动可以让我看到数据,但网格顶部的标题会滚动到视图之外。

有没有办法要求数据网格显示尽可能多的行,并为其余行提供滚动条?

- - 编辑 - -

如果当我调整浏览器大小时数据网格会与父级一起调整自身大小,则将 autoheight 设置为 false 正是我想要的。有没有好的方法可以实现这一目标?


我认为您正在寻找 grid.resize();如果您在此处查看 dojox nightly 文件中的文件“Grid.js.uncompressed.js”:http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/ http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/您可以准确地看到它的作用。如果您使用它,dataGrid 应该继承此方法。使用它的一种方法是根据窗口的高度调整包含的 div 的大小,然后调整内部网格的大小:

function changeHeight() {
    document.getElementById("div Id in which the dojo grid is there").style.height ="your desired height";
    dijit.byId('Id of the dojo grid').resize();
    dijit.byId('Id of the dojo grid').update();
}

另一种选择方法是做这样的事情:

function resizeGrid() {
   // do whatever you need here, e.g.:
   myGrid.resize();
   myGrid.update();
}

dojo.addOnLoad(function() {
    dojo.connect(window, "onresize", resizeGrid);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用基于父 div 大小而不是行数的 Dojo/Dijit DataGrid 自动高度功能? 的相关文章