EXTJS 3.3.3 Сетка - PullRequest
       8

EXTJS 3.3.3 Сетка

2 голосов
/ 20 января 2012

Я разрабатываю список сетки флажков с разбивкой на страницы с использованием сетки EXTJS. Мне нужно запомнить выбранную запись при выполнении навигации по страницам.

Подробнее: 1) Перейти на страницу: 1 и выбранные строки 1,2 и 3. 2) Теперь перейдите на страницу: 2 3) Вернись на страницу: 1 4) Уже выбранные строки 1,2 и 3 должны отображаться как выбранные

Есть ли в сетке API-интерфейс, который обрабатывает такие функции?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 21 января 2012

Спасибо за ваши ответы.Я достиг своего дизайна, реализовав плагин для сетки.Плагин выглядит так:

Ext.namespace('Ext.ux.plugins');

Ext.ux.plugins.CheckBoxMemory = Ext.extend(Object,
{
   constructor: function(config)
   {
      if (!config)
         config = {};

      this.prefix = 'id_';
      this.items = {};
      this.idProperty = config.idProperty || 'id';
   },

   init: function(grid)
   {
      this.view = grid.getView()
      this.store = grid.getStore();
      this.sm = grid.getSelectionModel();
      this.sm.on('rowselect', this.onSelect, this);
      this.sm.on('rowdeselect', this.onDeselect, this);
      this.store.on('clear', this.onClear, this);
      this.view.on('refresh', this.restoreState, this);
   },

   onSelect: function(sm, idx, rec)
   {
      this.items[this.getId(rec)] = true;
   },

   onDeselect: function(sm, idx, rec)
   {
      delete this.items[this.getId(rec)];
   },

   restoreState: function()
   {
      var i = 0;
      var sel = [];
      this.store.each(function(rec)
      {
         var id = this.getId(rec);
         if (this.items[id] === true)
            sel.push(i);

         ++i;
      }, this);
      if (sel.length > 0)
         this.sm.selectRows(sel);
   },

   onClear: function()
   {
      var sel = [];
      this.items = {};
   },

   getId: function(rec)
   {
      return rec.get(this.idProperty);
   }
});

Этот плагин был вызван от Gird как,

Ext.grid.Gridpanel({
store: 'someStore',
plugins: [new Ext.ux.plugins.CheckBoxMemory({idProperty: "recordID"})]

});

Надеюсь, это кому-нибудь поможет.

1 голос
/ 20 января 2012

Я не думаю, что есть. Вам необходимо хранить идентификаторы выбранных записей в каком-то отдельном хранилище / массиве и использовать его для повторного применения выбора при изменении страницы.

0 голосов
/ 20 января 2012

Вы можете поместить объект MixedCollection в глобальную область, чтобы отслеживать эти записи. Это позволит вам хранить глобальные настройки различных типов объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...