Проблема с отображением при использовании расширения RowEditor в ExtJS GridPanel

Я использую расширение RowEditor для редактирования GridPanel. Моя версия ExtJS — 3.3.0. Мне нужно, чтобы некоторые поля были доступны для редактирования, а другие вообще не редактировались, и я делаю это, игнорируя свойство editor в этих столбцах. Проблема в том, что когда редактор не найден, он создается искусственно в RowEditor.js следующим образом:

for(var i = 0, len = cm.getColumnCount(); i < len; i++){
        var c = cm.getColumnAt(i),
            ed = c.getEditor();
        if(!ed){
            ed = c.displayEditor || new Ext.form.DisplayField();
        }else{
            ed = ed.field;
        }
        //uninteresting code...
        this.insert(i, ed);
    }

Из-за этого данные отображаются дважды, как вы можете видеть на изображении ниже.

Твоя сетка

Есть ли быстрое решение, чтобы избавиться от этого ненужного текста, но при этом просмотреть существующие данные в сетке? Заранее спасибо.


person Giku Promitt    schedule 17.05.2011    source источник


Ответы (1)


Я собираюсь постулировать, нет. Не без переписывания части плагина. Опять же, вы можете вручную обойти элементы управления, которые вам не нужны, и скрыть их ... но это кажется неправильным.

Честно говоря, я бы просто обошёлся без плагина rowEditor. Так же просто иметь «обычные» редакторы (возможно, даже тот же код, который вы использовали для указания редакторов до сих пор).

Затем, опять же, как вы уже сделали, вы просто игнорируете опцию editor столбцов, которые вам не нужны.

Если вы хотите иметь более причудливый вид, вы можете попробовать стилизовать выбранную строку (GetRowClass в Ext.NET, аналогично в ExtJS? Или просто переопределить класс CSS выбранной строки).

person pierre    schedule 07.06.2011