Jqgrid设置列的宽度后,然后尝试单击列分隔符导致列调整大小返回到newWidth

时间:2013-11-18 16:14:26

标签: jqgrid

这里我遇到网格列调整大小的问题。 我想要实现的实际功能是我想在点击按钮时将网格列宽度重置为某些默认值。 我使用一些代码成功地改变了列的宽度,但现在出现了问题。 问题是在重置列宽(即设置列宽)后,然后当我单击列分隔符导致列宽更改为先前设置的宽度(即新宽度)。

我通过显示图像来说明问题。 只需按照显示的顺序考虑图像。

1.在调整列大小之前。 enter image description here

2.调整列大小后。 enter image description here

3.现在将宽度重置为默认宽度。 enter image description here

4.现在只需点击分隔符即可。这将导致在重置之前将列重新调整为先前的状态。拖动时也会导致意外行为,如下图所示。 enter image description here

5.拖动时宽度增加和不良行为。 enter image description here

我试了很多东西。我也发现了这个:jQuery grid plugin - triand 但遗憾的是,它没有提供任何解决方案。

通过使用该引用,我尝试将newWidth设置为0,-1,未定义,而且我将其从标头中删除。但所有的事情都没有用。

我无法理解发生了什么。 请注意,项目中某些不需要的代码不会出现在其他地方导致此行为。对于测试我尝试使用新版本的jqgrid 4.5.1,但同时也发生了同样的事情。

请有人为我提供解决方案。我很累,因为我很多天都在做这件事。我非常感谢帮助我的人。

提前谢谢你!

1 个答案:

答案 0 :(得分:1)

我不确定你是如何实现“将宽度重置为默认宽度”,但我希望有两件事可以帮到你。

首先,jqGrid在调整列的大小时会出现错误,这与您描述的“步骤5”完全相同。我发布了the pull request大约一个月前合并到jqGrid的主要代码。您可以对jquery.jqGrid.src.js的副本执行相同的更改(需要更改两行)(请参阅here更改的详细信息)。

要将列宽度重置为默认宽度,您可以使用以下内容。首先,您可以使用widthOrg的{​​{1}}元素。调整任何列的大小后,colModel的原始值将保存在width中。要更改列宽,可以使用我在the resent answer中建议的widthOrg方法。

我希望您能够使用setColWidthwidthOrg以及上面列出的错误修复解决您的问题。