2013-06-06 1 views
0

Я переопределил функциональность скрытых столбцов extjs, которая работает нормально. Когда столбец скрыт: true, во время загрузки первой страницы моя функция скрытия не работает. Когда я скрываю/показываю столбцы, он работает. Нужно иметь такую ​​же функциональность включена во время загрузки страницы слишкомскрытый true в extjs должен обладать теми же функциями, что и скрытый столбец

columnhide: function() { 
    var cell = this.getEl().query('.x-grid-cell-inner'); 
    var collen = grid.columns.length; 
    var i = 1; 
    for (var y = i; y < cell.length; y = y + collen) { 
     for (var x = 0; x < cell.length; x++) { 
      if (x == y) { 
       cell[x].style.display= "none"; 
      } 
     } 
    } 
} 
+1

Добро пожаловать в SO. Пожалуйста, отформатируйте свой текст, чтобы он был читабельным. – sha

+0

Для правильного отображения кода необходимо отложить его на 4 пробела (или использовать кнопки на панели инструментов). Я отредактировал ваш пост, чтобы показать вам, что он должен дать. – rixo

ответ

1

Вы правы, columnhide событие срабатывает только тогда, когда колонна скрыта после оно было вынесено.

Простейший способ сделать вашу текущую работу кода будет состоять в том, чтобы вызвать hide() в столбце, вместо использования опции hidden.

Замена hidden: true со следующим в конфигурации столбца будет делать трюк:

,listeners: { 
     // we want to catch the event only the first time it is fired 
     single: true 
     ,afterrender: function() { 
      this.hide(); 
     } 
    } 

Этот код добавит слушателя в колонку вы хотите скрыть, и после того, как колонна оказывается, она будет называть его hide() способ. Это вызовет ваше событие и т. Д.

+0

Спасибо .. Но он блистает. Здесь проверьте Pls. http://jsfiddle.net/r7Tdy/16/ – user2353513

+0

this.hide() Скрывает всю сетку не столбец – user2353513

+0

Я предполагаю, что вы узнали, но вы должны поместить слушателя в конфигурацию столбца, а не в сетку , – rixo

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