2011-04-13 52 views
1

我想以某種方式保存「當前選定的記錄」在我的GridPanel,然後我想刪除GridPanel,再次創建它,並設置「當前選定的記錄」回來。ExtJs。如何使「gridPanel中的選定項目」成爲孤兒?

什麼是最好的或常見的方法來做到這一點?

PS:或者你可以回答這個問題,如何在GridPanel中被記錄的「ID」選擇記錄(例如)

+0

爲什麼刪除整個的GridPanel?將記錄存儲在變量中,清除存儲並使用單個記錄重新填充gridStore會不會更有效?它可能也需要更少的代碼。 – StevenMcD 2011-04-13 10:35:21

+0

好吧..這只是我的應用程序要求這樣做...我想在一個地方刪除網格,然後在另一個地方創建它...但是當我這樣做,我失去了我的「當前選定的記錄」.. – 2011-04-13 10:37:26

+0

所以busicly我的應用requre「移動」gridPanel從一個地方到另一個.. – 2011-04-13 10:38:01

回答

4

我能想到的是通過調用存儲在一個變量記錄的最好方法:

var record = gridPanel.getSelectionModel().getSelected(); 

重新創建你的網格,只要它是需要的話,假設綁定到新的格柵,新Gridstore的結構是一樣的前面Gridstore的,您可以撥打:

gridStore.add(record); 

然後應該將記錄添加到您的新商店,從而添加到您的新gridPanel。希望它有幫助,我希望我能正確理解你的問題。

編輯:您還可以通過調用選擇記錄:gridPanel.store.getById("id");

EDIT2:

所以選擇基於你需要做兩件事情記錄的ID在GridPanel中的行。

1)獲取的GridPanel中記錄的指標:

var recordIndex = gridPanel.store.getIndexById("id"); 

2)使用索引選擇在GridPanel中記載:

gridPanel.getSelectionModel().selectRow(recordIndex); 
+0

你幾乎讓我...讓我們看看這個以其他方式..我有兩個GridPanels,他們綁定到不同的商店(負載來自同一地點的數據)(因此data1 === data2)..現在我想在第一個GridPanel中選擇一行,並且希望在其他GridPanel中選擇「相同」行(例如具有相同「id」的行)... – 2011-04-13 10:51:28

+0

好的,我現在明白了!給我幾分鐘,我只需要完成一些事情,很確定我知道該怎麼做。 – StevenMcD 2011-04-13 10:53:25

+0

我改變了一些代碼,使其工作在ExtJs4,但它的作品神奇:) tnx很多.. – 2011-04-13 11:17:43