1

将 KendoUI Grid 与列模板一起使用时出现以下问题:

我的一行数据如下所示(简化):

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

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

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

有什么方法可以访问模板中的列名或将其作为参数发送?

任何帮助表示赞赏!

4

2 回答 2

5

您可以在模板中包含一个 javascript 函数,如下所示:

{title:"StatusA", field:"Status1", template: "#= formatStatus(data.Statuses[0]) #" },
{title:"StatusB", field:"Status2", template: "#= formatStatus(data.Statuses[1]) #"}

这是帮助我发现这一点的文章:

http://www.kendoui.c​​om/forums/ui/grid/grid-cell-template-for-image-with-javascript-selector.aspx

于 2012-10-19T02:52:40.473 回答
0

不幸的是,你不能。我已经断断续续地寻找这个好几个星期了。我终于变聪明了,在模板执行中的 JS 中做了一个 console.log(this),可以看到模板函数签名。唯一的参数是“数据”,它包含您的整个数据模型的行。

Telerik 的建议是创建一个行模板。这意味着如果您允许隐藏或重新排序列,则在行模板中处理它们成为您的责任,而列模板不必关心这些。如果您想要备用行样式,您还必须提供备用行模板(可能仅因类/样式而异);再次是列模板不必担心的事情。

恕我直言,这是 Telerik 的疏忽。

于 2013-08-06T16:41:13.030 回答