2012-02-09 61 views
0

添加監聽器Ext.Grid.panel我試圖監聽器添加到Ext.grid.panel在EXTJS 4

listeners: { 

itemclick:function(grid, record, item, index, event){ 

alert(index); 
var record = grid.getStore().getAt(index); 
alert("Edit " + record.get('data')); 
alert("Type " + record.get('type')); 

} 

我supose讓我點擊的行的索引值。 所以當我第一次點擊行時,我得到:[對象對象]在其中的索引警報框中。第二個警報不會出現。

所以當我再次點擊同一行。它顯示正確的索引,然後顯示「數據」,然後在警告框中輸入「type」。

任何人都可以指導我解決這個問題,以獲得正確的值,只有第一次點擊??? 緊急請幫助!

+2

你爲什麼要從商店訪問記錄?事件處理程序的第二個參數是與所單擊項目相關的記錄。是否有某些原因需要通過索引訪問記錄? – Eric 2012-02-09 18:27:40

+0

也要小心定義記錄變量,它將在參數列表中掩蓋記錄變量。 – dbrin 2012-02-10 06:12:59

回答

0

當我將偵聽器添加到自己的網格面板中時,每次都會得到相同的行爲。例如: 4 /「編輯未定義」/「類型未定義」。

您看到不同的行爲,具體取決於它是您第一次單擊某個項目還是不可能與如何創建/呈現網格有關。

作爲「索引」傳遞給您的偵聽器函數的Object的內容可能會給您一個線索。如果您將其登錄到控制檯,您將能夠檢查它。 (至少Chrome是如何處理對象記錄的)。

雖然這不是解決您的問題,但我希望它對您的調試有所幫助。