2013-11-20 11 views
0

Я использую ExtJs 4.1. Мое приложение имеет две сетки. Обе сетки имеют функцию группировки (я использую две уникальные функции группировки). Обе сетки используют один магазин. Каждая сетка имеет две кнопки, используемые для включения и отключения функции группировки. Все это прекрасно работает.Функция группировки элементов сетки ExtJs 4.1, позволяющая и отключая проблему

Проблема: Когда я отключить группировку функции в одной сетке и открытой второй сетке, функция группирования во второй сетке также получает отключена, даже если сетки & группировки особенности различны. Я не уверен, в чем причина такого поведения.

Пожалуйста, используйте этот fiddle, чтобы воспроизвести проблему и просмотреть код.

Use fiddle to see the code 

Спасибо !!! 1

ответ

4

Это будет работать ... http://jsfiddle.net/WRTM3/1/

Ext.define('myKindOfStore'); 
var store1 = Ext.create('myKindOfStore'); 
var store2 = Ext.create('myKindOfStore'); 

Похоже, что группировка функция фактически выполняется в хранилище за решеткой. Так как вы используете один и тот же магазин в обеих сетках каждой группы плагин действуют как два разных переключателей света приободрить тот же шарик ...

Если вы хотите отделить поведение сетки, просто определить новый магазин и создать два отдельных экземпляров магазина для каждой сетки (см моего jsfiddle вилки)

Таким образом, все операции по СЕТКА1 = store1 не имеют никакого влияния на СЕТКА2 = store2 включая фильтрацию, сортировку и т.д.

Надежда это то, что вы хотите :-)

+0

Благодарим вас за ответ. Но я не понимаю, когда вы очищаете группировку для сетки, а затем закрываете главное окно и затем снова открываете сетку, почему функция группировки отключена? Когда я закрываю окно, я предполагаю, что сетка также разрушена вместе с функцией группы. Теперь, когда я открываю окно (которое загружает сетку), сетка должна иметь включенную функцию группировки. – SharpCoder

+0

Прежде всего, существует разница между закрытием и уничтожением окна. Только последние сделают соответствующие настройки «забытыми». В вашем примере, однако, вы определяете/создаете хранилище. Ни в коем случае не разрушается магазин (вы не можете закрыть магазин - по крайней мере, не в программировании :-). В ваших сетях вы * указываете * магазин. И когда вы активируете группировку, эта команда передается в хранилище ссылок. Проверьте это: http://jsfiddle.net/W4UR5/ Это ваш код с окнами, не модальными. Откройте обе бок о бок и измените группировку на одном из них, а другой изменится слишком. – Thomas

+0

Посмотрите на это так: вид сетки действует только как интерфейс управления для магазина позади него. Если щелкнуть заголовок столбца для сортировки, сетка сообщит магазину: «Сортировка по столбцу X», затем хранилище вернет все данные в отсортированном порядке, и сетка обновит его содержимое. Но магазин может использоваться многими видами одновременно. Все они будут обновлены (фильтр, сортировка, группа), когда хранилище будет изменено - независимо от того, какой вид вызвал изменение. – Thomas