В настоящее время у меня довольно большая сетка, и я успешно использую плагин RowExpander для отображения дополнительной информации в определенных строках. Моя проблема в том, что не все строки содержат вышеупомянутую дополнительную информацию, и я не хочу, чтобы RowExpander был активен и не отображал значок «+», если запись в конкретном хранилище данных пуста. Я попытался использовать обычное свойство «рендерер» для объекта RowExpander, но это не сработало.
Итак, как вы можете отображать и активировать значок RowExpander и двойной щелчок, только если поле определенного хранилища данных != ""?
Заранее спасибо! знак равно
EDIT: я нашел решение
Как заявил e-zinc, часть решения (по крайней мере, для меня) состояла в том, чтобы предоставить собственный рендерер, который проверял бы мое условное поле. Вот мой RowExpander:
this.rowExpander = new Ext.ux.grid.RowExpander({
tpl: ...
renderer: function(v, p, record) {
if (record.get('listeRetourChaqueJour') != "") {
p.cellAttr = 'rowspan="2"';
return '<div class="x-grid3-row-expander"></div>';
} else {
p.id = '';
return ' ';
}
},
expandOnEnter: false,
expandOnDblClick: false
});
Хитрость здесь в том, что для этой конкретной сетки я решил не разрешать expandOnEnter и expanOnDblClick, поскольку RowExpander иногда не будет отображаться. Кроме того, класс CSS ячейки сетки, которая будет содержать значок «+», — «x-grid3-td-expander». Это вызвано тем, что для класса CSS автоматически устанавливается значение x-grid3-td-[id-of-column]. Таким образом, устанавливая идентификатор в '' только тогда, когда я не отображаю rowExpander, я также удаляю серый фон необработанных ячеек. Итак, ни двойного щелчка, ни ввода, ни значка, ни серого фона. Это действительно выглядит так, как будто RowExpander строго не задействован для столбцов, где поле моего хранилища данных пусто (когда я не хочу RowExpander).
Это помогло мне. Для тех, кто хочет сохранить идентификатор ячейки или хочет, чтобы двойной щелчок и входные события работали, мне нечего делать, кроме расширения класса, я думаю. Надеюсь, это поможет другим людям, застрявшим в том же положении, что и я!