将KendoUI Grid与列模板一起使用时,我遇到以下问题:
我的行数据看起来像这样(简化):
{ Name: 'name', Statuses: [ {Name: 'StatusA', Value: 'ValueA'} , {Name:'StatusB', Value: 'ValueB'}] }
因此,在每行数据上,我都有一个状态名称 - 值集合列表。 我有许多列(每个状态一个),以状态名称命名:StatusA,StatusB等。
在列模板中,我想根据列名放置状态值。 我可以访问模板中的data.Statuses并获取状态值,但模板不知道正在呈现哪个列。
有没有办法访问模板中的列名或将其作为参数发送?
感谢任何帮助!
答案 0 :(得分:5)
您可以在模板中包含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
答案 1 :(得分:0)
不幸的是,你做不到。我一直在寻找这个,持续数周。我终于聪明了,在模板执行中在JS中做了一个console.log(this),可以看到模板函数签名。唯一的参数是“data”,它包含行的整个数据模型。
Telerik的建议是创建一个行模板。这意味着如果您允许隐藏或重新排序列,则您有责任在行模板中处理它们,而列模板不必关心这些。如果要进行备用行样式,还必须提供备用行模板(可能仅因类/样式而异);再一次列模板不用担心。
恕我直言,这是对Telerik的疏忽。