0
我想將一些動態數據添加到「livesearch」組合框中。extjs4:鏈接組合
我有一套2組合。
第一個允許您選擇一些數據。 第二個組合是一個「livesearch」組合,它應該有來自第一個組合的動態參數。 因此,第二個組合鏈接到模型,該模型鏈接到查詢服務器並輸出數據的數據存儲區。但該數據必須根據第一個組合參數進行過濾...
任何人都知道如何做到這一點?
我想將一些動態數據添加到「livesearch」組合框中。extjs4:鏈接組合
我有一套2組合。
第一個允許您選擇一些數據。 第二個組合是一個「livesearch」組合,它應該有來自第一個組合的動態參數。 因此,第二個組合鏈接到模型,該模型鏈接到查詢服務器並輸出數據的數據存儲區。但該數據必須根據第一個組合參數進行過濾...
任何人都知道如何做到這一點?
我做到了before。關鍵是將第一個組合的值與第二個組合的值的請求一起傳遞,然後在服務器上過濾結果。其他的方法是加載所有可能的值的組合,然後在第一個組合中選擇一個值後,在第二個組合的商店中設置一個過濾器。
編輯:這是我用過的。
Ext.define('Ext.ux.FilteredCombo', {
extend: 'Ext.form.field.ComboBox',
alias: 'widget.filteredcombo',
queryCaching: false,
getParams: function (queryString) {
var params = this.callParent(arguments);
if (Ext.isArray(this.formParams)) {
var form = this.up('form');
if (form) {
var bf = form.getForm();
for (var i = 0; i < this.formParams.length; i++) {
var field = bf.findField(this.formParams[i]);
if (field)
params[this.formParams[i]] = field.getValue();
}
}
}
return params;
}
});
是,通過組合由數據存儲的請求的值是我想要的。 我可以獲取組合值,我可以從服務器獲取數據到數據存儲區,但當用戶開始向組合框輸入文本時,我無法動態更新數據存儲區參數。 當用戶點擊某些東西時,我可以用新的參數重新加載數據存儲,因爲我處理自己的商店重新加載,但商店重新加載可能由組合處理。我重寫該代碼的一部分,但這將是很難... –
lapos34
要解決重新加載問題在您的商店配置添加queryCaching:false。另外,我添加了我在示例中使用的代碼。 – Marko