手动宽度更改后jqgrid列大小调整
我有一个函数,其中我手动设置了jqgrid
列的宽度。如果在此之后我想使用调整大小手柄,它会从原始宽度大小相对增加或减少。所以它没有看到我的新宽度作为基础。我曾尝试将width
和withOrg
置于colModel
之内,但未取得成功。手动宽度更改后jqgrid列大小调整
我有一个点击处理程序,其中我点击调整列大小到一定的宽度。我设置了宽度的th
trought JS。在此之后,我希望能够使用.ui-jqgrid-resize
元素调整列的大小。
我的代码很短的版本,说th
是200像素宽:
$('th').dblclick(function(){
$(this).width('100px');
});
用户doubleclicked后,和th
去了尺寸更小,以100px
,用户使用调整手柄加宽th
10px
。预期的结果是一个th
的110px
宽,但th
跳到210px
宽。它增加了用户想要添加到原始状态的10px
,而不是我用doubleclick设置的状态。
我建议您使用我之前编写的插件(请参阅the answer)中的setColWidth
方法来更改网格列的宽度。您可以从github下载当前版本的插件。
如果你想设置基于列的内容的宽度列的宽度,那么我会建议你看一看的the answer创建the demo和阅读the answer了。我没有看到建议的代码作为最终解决方案,但演示显示了我对问题的看法以及实现“autowidth”功能的方法。
确实可行,你能向我解释为什么?它是dragEnd吗? – 2014-10-20 11:42:05
@LaurensKling:正如我之前写过的,需要更改jqGrid的许多内部结构来更改列宽。如果用户调整列的大小,那么树方法'dragStart','dragMove'和'dragEnd'将被调用。 [dragEnd](https://github.com/tonytomov/jqGrid/blob/v4.6.0/js/grid.base.js#L911-L946)使用一些属性作为输入(它设置'dragStart','dragMove') 。所以我只填写相同的输入属性,然后调用可访问的'dragEnd'(参见[here](https://github.com/tonytomov/jqGrid/blob/v4.6.0/js/grid.base.js#L2928) ))通过'this.grid'。这是我找到的最好方式。 – Oleg 2014-10-20 12:32:45
你在“我手动设置jqgrid列的宽度”和“之后想要使用调整大小手柄”的意思是什么?你在做什么和在哪个环境中?你如何“手动设置列的宽度”?你是否写了你的回调'resizeStop'的代码,并且需要一些额外的信息? – Oleg 2014-10-17 14:17:27
问题更新有帮助吗? – 2014-10-17 14:53:55
对不起,但我仍然不明白你的**目标**。你写了“我希望能够使用.ui-jqgrid-resize元素”。这不可能是你的目标。你可以随时“使用元素”,但你想实现什么?为什么你“设置th的宽度”? jqGrid已经做到了。 *用户调整列的大小后,还需要*调整大小* – Oleg 2014-10-17 15:04:19