«Стандартный» метод включает использование функции для редактирования шаблона строки/столбца, чтобы включать в себя дивы с идентификаторами, а затем рендеринга компонентов в этих дивы с renderTo
конфигурации. Однако, поскольку вы работаете по столбцу, а не по строке, вы можете использовать более простой подход.
В вашей колонке конфигурации, используйте пользовательский визуализатор, как это:
// May not be exact, I just came up with this on the spot
renderer: function(value, metaData, record, rowIdx, colIdx, store, view) {
return [
"<div id='combobox_", rowIdx, "'></div>",
"<div id='numberfield_1_", rowIdx, "'></div>",
"<div id='numberfield_2_", rowIdx, "'></div>"
].join("");
}
Так что теперь каждую ячейку в этом столбце имеет три дивы с уникальными идентификаторами (вам, возможно, придется заменить «rowIdx» с каким-либо другим способом идентификация, как record.id). Тогда вам решать создать компоненты и сохранить их.
Обратите внимание, что refresh
метода зрения сетки будет вызываться каждый раз, когда обновление сетки, включая сортировку, фильтрацию, скрывая столбцы, и т.д. Таким образом, вы должны следить за afterrefresh
события или что-то подобное и повторно сделать ваши компоненты по мере необходимости. Чтобы обмануть рендер-компонент в повторный рендеринг, используйте myComponent.rendered = false; myComponent.render();
, и он должен работать.
Возможно, есть плагины, которые люди написали, которые будут управлять хорошей частью этого процесса для вас, но это основная концепция. Это некрасиво, но это работает.
спасибо Эрик. Это очень помогает! –
Мне только пришло в голову, что вы можете сделать один div вместо трех и создать собственный класс «Контейнер», который содержит ваши три компонента. Быть быстрее, может быть проще поддерживать. – Eric