2011-11-23 58 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 
    ??? 
} 
相關問題