2012-05-23 95 views
3

如何添加兩個組合框從一家商店有type字段女巫值可以是1, 2 and 3我想在第一個組合框中的1 and 2類型和2 and 3第二秒中的記錄。如何從extjs中的一個商店創建兩個組合框?

我的組合框:

Ext.define('Exp.view.settings.servers.ComboBox', { 
    extend: 'Ext.form.ComboBox', 
    alias : 'widget.server_combobox', 

    xtype: 'combobox', 
    displayField: 'name', 
    valueField: 'id', 
    name: 'server', 
    store: 'Servers' 
}); 

商店:(例如剛剛從服務器的JSON數據讀寫器)

Ext.define('Exp.store.Servers', { 
    extend: 'Ext.data.Store', 
    model: 'Exp.model.Server', 

    autoLoad: true, 
    autoSync: true, 

    data: [{ 
     id: 1, 
     name: 'Server 1', 
     type: 1 
    },{ 
     id: 2, 
     name: 'Server 2', 
     type: 3 
    },{ 
     id: 3, 
     name: 'Server 3', 
     type: 2 
    }] 
}); 

如果我去商店都過濾那張組合框過濾。現在我創建了兩個商店,但這意味着兩個Ajax調用服務器,我不太喜歡這一點。

回答

6

答案是否定的,你不能。如果您需要同一商店中的兩組不同的數據在同一時間反映在任意兩個UI元素中(兩個網格或兩個連擊或其他),則需要創建商店副本。

您既可以克隆它,也可以創建更簡單的模型(例如,組合框只需要值和名稱),但是沒有辦法繞過它。

+0

有沒有簡單的方法來克隆商店? – Vytautas

+0

你將不得不做一個循環。瀏覽所有記錄並將其添加到新商店中...我認爲您可以找到許多此任務的樣本。這並不難 – sha

+0

謝謝。只是想,也許extjs有一些沒有記錄的魔術功能:D – Vytautas

1

我認爲過濾器將是最乾淨的方式。 這只是本地的例子。沒有使用應用程序結構。 http://jsfiddle.net/ssxenon01/WpZMU/

+0

問題是相同的,當我在第一個組合框中選擇它的作品,但是當我點擊第二個第一個過濾以及..你的例子dindn't工作至少對我來說。它不完整嗎? – Vytautas

+0

忘記我的第一個例子只是創建1商店和克隆它,這是好得多;) – XenoN

+0

也我有同樣的商店網格,這也是問題。這就是爲什麼我用過濾器失敗。嗯克隆也許會好的,但是當我在原始商店添加一些值時什麼? – Vytautas

相關問題