gpt4 book ai didi

javascript - jqGrid根据列数动态shrinkToFit

转载 作者:行者123 更新时间:2023-12-02 19:04:27 26 4
gpt4 key购买 nike

我在项目中使用 jqGrid,宽度设置为 900px,所有网格的配置相同。

如果我有 4 列,每列都设置了宽度,并且选项 shr​​inkToFit 设置为 true,则列将拉伸(stretch)以适合 900 像素。

但是,如果我有第二个包含 14 列的网格,并且我为每个网格设置了宽度,则 jqGrid 将不会考虑该列的宽度,因为 shr​​inkToFit 设置为 true。如果我将其设置为 false,我就可以解决这个问题。但另一个问题又出现了。第一个网格现在每列的宽度为 150px,并且列不再拉伸(stretch)以适合网格。

问题:有没有办法在不改变配置的情况下,在列宽度之和大于网格宽度时实现水平滚动条?

最佳答案

抱歉,但是很难理解您到底想要哪种行为。

首先,您必须决定您是否知道网格的列宽度最好,或者您想要对列进行缩放(拉伸(stretch)),并且列宽度将被解释为权重。如果您想要最后的行为,您应该选择默认设置 shr​​inkToFit: true。在这种情况下,宽度值 100、200 和 300 与值 1、2 和 3 的含义完全相同。

我个人在实践中主要使用具有许多列的网格。因此,在小显示器上使用默认设置 shr​​inkToFit: true 会导致列的大量挤压。因此,人们实际上无法在网格上看到任何有用的信息。所以我更喜欢在这种情况下使用 shr​​inkToFit: false 。我知道哪个负责每列的像素宽度,并在网格创建期间将值设置为 width 。因此,拥有大显示器的用户可以直接看到所有最重要的信息。此外,我没有为网格指定任何宽度参数。如果需要,用户可以使用页面的滚动条。您的要求可能不同,应选择最适合您的值。

如果您仍然希望使用 shr​​inkToFit: true,但确实使用其他宽度值作为网格所有宽度的总和,您还有一个选择。 您可以使用setGridWidth方法。它有可选的第二个 bool 参数shr​​ink。使用带有一个参数的 setGridWidth 方法将根据网格的 shr​​inkToFit 选项的值进行收缩,但显式使用第二个 shr​​ink 参数允许您在不收缩的情况下更改宽度。也许这就是您想要实现的。

我在 the answer 中描述了另一个选项。 jqGrid 没有任何方法允许将网格的某些列的宽度更改为新值。在答案中,我描述了解决方法(请参阅答案中的 resizeStop 回调的代码),它使用内部 dragEnd 方法来更改列宽度。该演示将用于子网格,但可以对每个网格使用相同的方法。

关于javascript - jqGrid根据列数动态shrinkToFit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com