【发布时间】:2013-04-05 13:35:44
【问题描述】:
是否可以使用包含复杂类型列表的实体模型创建 clientrowtemplate 以显示某些字段?我创建了一个服务器端行模板,但是当我在数据源上切换 ajax 时,它不起作用。我认为这是预期的。但是如何创建一个复杂的模板来显示带有 ajax 的集合作为 MVC 上的自定义行模板呢?
【问题讨论】:
标签: asp.net-mvc templates telerik kendo-ui kendo-grid
是否可以使用包含复杂类型列表的实体模型创建 clientrowtemplate 以显示某些字段?我创建了一个服务器端行模板,但是当我在数据源上切换 ajax 时,它不起作用。我认为这是预期的。但是如何创建一个复杂的模板来显示带有 ajax 的集合作为 MVC 上的自定义行模板呢?
【问题讨论】:
标签: asp.net-mvc templates telerik kendo-ui kendo-grid
已解决
对于干净的代码,将委托与任何其他代码块分开。注意代码末尾的 ToString() 以字符串形式获取结果,而不是 HelperResult。
@{
Func<Grid<MyModel>, string> clientRowTemplate = @<div class="order-info">
<div class="order-info-items cell">
# if (data.OrderItemList) { #
# for (var i in data.OrderItemList) { #
# if (data.OrderItemList[i].ID) { #
<img src="#= data.OrderItemList[i].ImageUrl #" alt="#= data.OrderItemList[i].ItemName #" width="100" height="100" />
# } #
# } #
# } #
</div>
</div>.ToString();
}
然后将其作为参数传递给 ClientRowTemplate 方法:
@(Html.Kendo().Grid(Model)
.Name("grd")
.Columns(columns =>
{
/*columns*/
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Orders_Read", "Home"))
)
.ClientRowTemplate(clientRowTemplate)
希望对你有帮助。
【讨论】: