0

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

如果我有 4 列,每列都设置了宽度,并且该选项shrinkToFit设置为 true,则这些列将拉伸以适合 900 像素。

但是,如果我有第二个 14 列的网格并且我将宽度设置为每个,jqGrid 将不会尊重列的宽度,因为shrinkToFit设置为 true。如果我将其设置为 false,我将解决此问题。但是又出现了一个问题。第一个网格现在将每列的宽度设为 150 像素,并且列不再拉伸以适应网格。

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

4

1 回答 1

2

抱歉,但很难理解您想要拥有哪种行为。

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

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

如果您仍然希望使用shrinkToFit: true,但确实使用其他一些宽度值作为网格所有宽度的总和,那么您还有一个选择。你可以使用setGridWidth方法。它有可选的第二个布尔参数shrink。使用setGridWidth带一个参数的方法会根据shrinkToFit网格选项的值进行收缩,但是显式使用第二个参数可以让您在收缩shrink的情况下更改宽度。可能是您想要实现的wnat。

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

于 2013-01-22T19:41:34.157 回答