2010-11-15 53 views
0

在ExtJS中,假設您有一個簡單的editorgrid,它有兩列X和Y,它們都有一個組合框作爲其編輯器。EditorGrid動態/依賴組合框編輯器字段

如何使第二列的組合框(Y)中的值可用取決於第一列(X)中的選定值?

因此,根據X中選擇的內容,Y中可用的值會相應地改變。

回答

0

好不容易纔回答我的問題:

由於EditorGrid問題使用RowSelectionModel(不是CellSelectionModel),我能在下面添加到beforeselect事件的editorcombobox

Ext.getCmp('EDITORGRID').selModel.getSelected().set('colY','myvalue'); 

根據需要更新了相關商店後,myvalue僅設置爲返回的第一條記錄。

1

假設您有一家商店支持每個組合框,您可以使用商店的filterfilterBy方法根據另一個組合框的當前選擇縮小一個組合框的結果。您可以在組合框的'select''change'事件上調用過濾功能。過去我成功地使用了這種方法,並且能夠滿足我的需求。每個組合框大約有200條記錄,所以我不確定這個解決方案有多好,如果你有比這更好的交易記錄。

+0

你能提供一些代碼嗎?當更改第一個組合框中的值時,如何獲取組合框所在的記錄(更改事件僅返回組合框存儲的記錄,而不是主網格存儲),然後引用相鄰列? – SW4 2010-11-15 13:52:40

+0

所以我需要註冊正在更改的組合框,然後查找組合框正在改變的網格記錄(而不是組合框自身中的記錄更改),然後使用網格記錄作爲參考,更改該記錄的下一列 – SW4 2010-11-15 13:53:42

+0

我將使用select事件,因爲它傳遞了所選的記錄,然後您可以過濾該記錄。 – McStretch 2010-11-15 14:35:47