2014-10-17 107 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