2010-07-29 91 views
2

我正在使用ASP.NET wrapper for JqGrid。我想以編程方式爲一些網格的events(例如gridCompleteresizeStop)連線處理程序。如何以編程方式處理JqGrid事件?

我見過

所有的例子都創建網格對象時,你的電纜鋪設事件作爲選項部分 - 例如:

$("#gridid").jqGrid({ 
    ... 
    onSelectRow: function(){ ... }, 
    ... 
}); 

然而,ASP.NET組件執行此初始設置爲我。我可以自定義組件上的一些客戶端處理程序,如gridInitialized;但(奇怪的是)只有一小部分事件是以這種方式暴露的。

所以:一旦網格已經初始化,是否有辦法將處理程序附加到它的事件?我試過的東西

$grid.setGridParam("resizeStop", function() { alert("!!") }); // DOESN'T WORK 

$grid.resizeStop = function() { alert("!!") }; // DOESN'T WORK 

當然,標準的jQuery事件綁定語法

$grid.bind("resizeStop", function() { alert("!!") }) // DOESN'T WORK 

但沒有工作的。

任何想法?

+1

作爲一個側面評論,ASP.NET包裝器的不完整性真的很令人生氣。如果使用包裝器,您可以使用純粹的開放源代碼組件,而這些組件完全無法訪問。 – 2010-07-29 01:56:08

+0

我同意。如果我知道如何完全不完全並且有時是無用的,那麼我就不會選擇從Trirand購買包裝紙。你碰巧得到這個工作? – Cody 2014-10-23 02:52:08

回答

2

您可以對setGridParam方法做更改事件處理程序(請參閱關閉問題Add an event handler to jqGrid after instantiation)。它必須以相同的方式用於jqGrid的紀念版和開源版。只需嘗試以下操作:

$('#gridid').jqGrid('setGridParam', { resizeStop: function(newwidth, index) { 
    alert("The column with the index " + index + " has now the width " + newwidth); 
} }); 
+0

這似乎不起作用。不知道是否誰投票贊成這個答案實際上使它的工作,但沒有發生在我的一端。 – Cody 2014-10-23 02:43:51

+0

@Cody:答案很古老,但一切仍然有效。看看[演示](http://www.ok-soft-gmbh.com/jqGrid/setResizeStop.htm)並調整列的大小。您將看到設置爲上述代碼的警報。 – Oleg 2014-10-23 05:03:51

+0

謝謝。這種方法確實有效,在我的情況下,我的方法中的參數不正確。 – Cody 2014-10-23 15:24:36

相關問題