2014-10-17 109 views
0

我有一个函数,其中我手动设置了jqgrid列的宽度。如果在此之后我想使用调整大小手柄,它会从原始宽度大小相对增加或减少。所以它没有看到我的新宽度作为基础。我曾尝试将widthwithOrg置于colModel之内,但未取得成功。手动宽度更改后jqgrid列大小调整

我有一个点击处理程序,其中我点击调整列大小到一定的宽度。我设置了宽度的th trought JS。在此之后,我希望能够使用.ui-jqgrid-resize元素调整列的大小。

我的代码很短的版本,说th是200像素宽:

$('th').dblclick(function(){ 
    $(this).width('100px'); 
}); 

用户doubleclicked后,和th去了尺寸更小,以100px,用户使用调整手柄加宽th10px。预期的结果是一个th110px宽,但th跳到210px宽。它增加了用户想要添加到原始状态的10px,而不是我用doubleclick设置的状态。

+0

你在“我手动设置jqgrid列的宽度”和“之后想要使用调整大小手柄”的意思是什么?你在做什么和在哪个环境中?你如何“手动设置列的宽度”?你是否写了你的回调'resizeStop'的代码,并且需要一些额外的信息? – Oleg 2014-10-17 14:17:27

+0

问题更新有帮助吗? – 2014-10-17 14:53:55

+0

对不起,但我仍然不明白你的**目标**。你写了“我希望能够使用.ui-jqgrid-resize元素”。这不可能是你的目标。你可以随时“使用元素”,但你想实现什么?为什么你“设置th的宽度”? jqGrid已经做到了。 *用户调整列的大小后,还需要*调整大小* – Oleg 2014-10-17 15:04:19

回答

0

我建议您使用我之前编写的插件(请参阅the answer)中的setColWidth方法来更改网格列的宽度。您可以从github下载当前版本的插件。

如果你想设置基于列的内容的宽度列的宽度,那么我会建议你看一看的the answer创建the demo和阅读the answer了。我没有看到建议的代码作为最终解决方案,但演示显示了我对问题的看法以及实现“autowidth”功能的方法。

+0

确实可行,你能向我解释为什么?它是dragEnd吗? – 2014-10-20 11:42:05

+1

@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