2012-11-19 34 views
1

我怎樣才能得到一個項目的元素ID在ExtJS4商店範圍基於項目的屬性中的一員?舉例來說,我正在店裏如下:ExtJS4拿到店裏

var combobox = Ext.ComponentQuery.query('[xtype=mycombobox]')[0]; 
var items = combobox.getStore().getRange(); 

我想跳到基礎上的productid在組合框中正確的項目是用戶選擇其他地方:

combobox.select(elementid); 

我只是缺少讓我說的邏輯

elementid = items.getWhere('prodid', 'productid'); // Or however its actually done. 
+0

北京時間什麼你的問題?你問了一個類似的問題。通常,您會從組合選擇的值,而不是一個範圍值。那麼你如何確定你想要獲取的價值呢? – sra

+0

這是我能找到什麼,我試圖做的最接近的方法:'combobox.getStore()findIndex(「PRODID」,passedValue))'不同的是,我得到一個錯誤消息findIndex不是getStore的方法( )。這是一個聽衆,當一個用戶在產品ID,我想找出哪個元素在組合框中商店對應於ID,所以我可以用combobox.select選擇它()。而在未來還有其他方法我想要得到的值,如其他控制器基本上預填充這個下拉項。 – Wige

回答

1

這就是我最終提出的,這實際上需要兩個獨立的電話。不知道這是最有效的方式做到這一點,但它似乎工作。

首先,我需要得到具有等於價值的productid模型:

var model = combobox.getStore().findRecord('productId', value); 

然後,我需要找出該模型的指數是整個店:

var index = combobox.getStore().indexOf(model); 

然後我就可以走索引,並將其應用於備份到ComboBox:

combobox.select(index);