2011-04-13 48 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