Как указать разные виджеты редактора для одного столбца в Dojo DataGrid
Мне интересно, есть ли официальный способ указать другой редактор виджетов для того же столбца в DataGrid
(разные строки)?
я нашел dojox.grid.cells._MultipleEditor
, но это довольно сложно и официально не поддерживается.
Это для создания таких вещей, как лист свойств с DataGrid
,
РЕДАКТИРОВАТЬ: Люди, кажется, предлагают использовать dgrid
, Тем не менее, я не уверен, если dgrid
имеет эту особенность. Также, к сожалению,... барабанная дробь... музыка ужасов... Я должен поддерживать IE6.
1 ответ
Ну, кажется, есть способ сделать это. Кажется, не показывает много негативных побочных эффектов (пока)...
Создайте один столбец для каждого типа значения, один за другим.
Пометьте каждый столбец классом CSS, чтобы указать его тип значения (через
classes
). Например:classes="multivalue int"
Для каждого столбца пометьте его правильным виджетом редактора и соответствующими ограничениями и параметрами.
Поместите стили в каждом ряду (с
onStyleRow
), которые соответствуют каждому типу. Например, добавитьtype-int
класс в строке, которая имеетint
тип.Поместите в стиль CSS, который изначально скрывает все многозначные ячейки:
.dojoxGridCell.multivalue { display:none; }
Снимите все ячейки с правильного типа:
.dojoxGridRow.type-int .dojoxGridCell.multivalue.int { display:table-cell; *display:block; /* For IE6/7 */ }
Очевидно, что для этого каждая строка должна соответствовать ровно одному столбцу.
Очевидно, вы должны установить для всех этих полей одно и то же имя свойства.
DataGrid
позволяет вам сделать это.Положил
display:none
(через CSS и т. д.) во всех ячейках заголовков многозначных столбцов, кроме первого. В противном случае у вас будет слишком много ячеек заголовка.