2012-05-23 2 views
3

Как добавить два выпадающих списка из одного магазина, есть type Значения полей ведьмы могут быть 1, 2 and 3 Мне нужны записи с типом 1 and 2 в первом поле со списком и 2 and 3 во втором.Как создать два выпадающего списка из одного магазина в extjs?

Мой ComboBox:

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

Ответ: нет, вы не можете. Если вам нужно иметь два разных набора данных из одного и того же хранилища, которые должны отражаться в любых двух элементах пользовательского интерфейса одновременно (две сетки или две комбо или что-то еще), вам нужно создать копию своего магазина.

Вы можете либо клонировать его, либо даже создавать более простую модель (comboboxes нужно просто значение и имя, например), но нет никакого способа обойти это.

+0

Есть ли простой способ клонировать магазин? – Vytautas

+0

Вам нужно будет сделать цикл. Пройдите все записи и добавьте их в новый магазин ... Я думаю, вы можете найти много примеров для этой задачи. Это не сложно – sha

+0

Спасибо. Просто подумал, может быть, у extjs есть некоторая не документированная магическая функция: D – Vytautas

1

Я думаю, что фильтр будет самым чистым способом. Это просто местный пример. Не использовалась структура приложения. http://jsfiddle.net/ssxenon01/WpZMU/

+0

Проблема такая же, когда я выбираю в первом поле со списком, но когда я нажимаю на второй, сначала фильтруется также. Ваш пример не работает, по крайней мере, для меня. Это неполное? – Vytautas

+0

забудьте мой первый пример, просто создайте 1 магазин и клонируйте его, это намного лучше;) – XenoN

+0

также у меня есть сетка с тем же магазином, что тоже проблема. Вот почему я потерпел неудачу с фильтром. Хм-клон, возможно, будет в порядке, но что, когда я добавляю некоторые значения в оригинальном магазине? – Vytautas

Смежные вопросы