Как получить доступ к имени столбца из шаблона столбца в KendoUI Grid?
У меня возникает следующая проблема при использовании KendoUI Grid с шаблоном столбца:
Мои данные для строки выглядят так (упрощенно):
{ Name: 'name', Statuses: [ {Name: 'StatusA', Value: 'ValueA'} , {Name:'StatusB', Value: 'ValueB'}] }
Таким образом, в каждой строке данных у меня есть список коллекции значений и имен для статусов. У меня есть несколько столбцов (по одному для каждого статуса) с именем статуса: StatusA, StatusB и т. Д.
В шаблоне столбца я хочу поставить значение статуса в зависимости от имени столбца. Я могу получить доступ к data.Statuses в шаблоне и получить значения состояния, но шаблон не знает, для какого столбца выполняется рендеринг.
Есть ли способ получить доступ к имени столбца в шаблоне или отправить его в качестве параметра?
Любая помощь приветствуется!
2 ответа
Вы можете включить функцию javascript в шаблон следующим образом:
{title:"StatusA", field:"Status1", template: "#= formatStatus(data.Statuses[0]) #" },
{title:"StatusB", field:"Status2", template: "#= formatStatus(data.Statuses[1]) #"}
Вот статья, которая помогла мне обнаружить это:
http://www.kendoui.com/forums/ui/grid/grid-cell-template-for-image-with-javascript-selector.aspx
К сожалению, вы не можете. Я искал это время от времени. Я наконец стал умным и сделал console.log( this) в JS во время выполнения шаблона и смог увидеть сигнатуру функции шаблона. Единственный параметр - "данные", который содержит всю вашу модель данных для строки.
Telerik предлагает создать шаблон строки. Это означает, что если вы разрешаете скрывать или переупорядочивать столбцы, вы обязаны обрабатывать их в шаблоне строки, тогда как шаблон столбца не должен касаться этого. Вы также должны предоставить альтернативный шаблон строки (который может отличаться только классом / стилем), если вы хотите использовать альтернативную стилизацию строки; опять то, о чем не нужно беспокоиться о шаблонах столбцов.
ИМХО, это недосмотр со стороны Telerik.