如何从Kendo UI Grid中的列模板访问列名?

时间:2012-08-02 10:21:20

标签: kendo-ui kendo-template

将KendoUI Grid与列模板一起使用时,我遇到以下问题:

我的行数据看起来像这样(简化):

{ Name: 'name', Statuses: [ {Name: 'StatusA', Value: 'ValueA'} , {Name:'StatusB', Value: 'ValueB'}] }

因此,在每行数据上,我都有一个状态名称 - 值集合列表。 我有许多列(每个状态一个),以状态名称命名:StatusA,StatusB等。

在列模板中,我想根据列名放置状态值。 我可以访问模板中的data.Statuses并获取状态值,但模板不知道正在呈现哪个列。

有没有办法访问模板中的列名或将其作为参数发送?

感谢任何帮助!

2 个答案:

答案 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的疏忽。

相关问题