2011-11-23 60 views
0

我正在使用我的网格的RowEditor插件。网格记录有三个按钮:选择,更新,取消。当我点击选择它将显示另一个网格,用户必须点击一条记录,然后该记录的一些值必须显示在前一个网格上。这个怎么做 ? 我正在使用extjs 3.0如何从另一个网格的另一选定记录向网格添加数据

在此先感谢!

回答

0

当你点击选择 - 显示带网格的模式窗口弹出。当你打开弹出窗口时,将回调传递给弹出窗口的构造函数。然后强制用户在网格中仅选择一条记录(使用rowselectmodel)。在itemclick甚至是子网格上 - 调用回调函数并传递父网格中的选定数据。用这些数据更新父母的网格记录。

希望我很清楚。

+0

谢谢你,我只是做evrything你写什么,但我需要显示的数据(子成父的一些记录)和行是仍然编辑模式下三个按钮 当我点击更新从子网格的数据将进入数据库。用户可以编辑或不编辑剩余字段。我完成了你所写的一切,但我没有得到如何将数据从子网格显示到父网格当前行(它处于可编辑模式) – bindun

+0

您总是可以获取当前编辑的行。使用父网格选择模型,然后您可以更新此行的记录。您还可以更新当前打开的RowEditor中的编辑器。处理所有这些时刻可能有点复杂,但它是可行的:)。 –

+0

请问你能寄一些样品代码吗?我不知道如何编码。我的电子邮件是:[email protected]谢谢! – Thorusan86

0

要确定用户选择了哪一行,请使用Ext.grid.GridPanel的SelectionModel。默认模型是Ext.grid.RowSelectionModel(使用selModel配置设置更改默认值)。要获取所选行,请致电myGridPanel.getSelectionModel().getSelected()。这将返回一个Ext.data.Record。挖掘该数据以填充原始网格/商店。

0

感谢您的回复。我已经完成了所需的事情。我已经完成了,只是将编辑器传递给了我的函数并使用了选择模型,我得到了这些值并将它们放入了编辑器中。

val1 = selectedArray[0].get('val1'); 
var cm = grid.colModel, fields = editor.items.items, f, val; 
f = fields[1]; 
f.setValue(val1); 
editor.values[f.id] = val; 

这使我的生活更轻松。

但是,在放入编辑器后,我还有另一个问题。如果用户单击更新按钮,我必须在afteredit事件中进行验证。在afteredit事件,

afteredit: function(object, changes, record, rowIndex) 
{ 
    // I have to do validation on the changes; but its an object. How will I do it 
    ??? 
} 
相关问题