Kendo UI Grid - MVC - ClientRowTemplate上的实体(视图模型)的循环集合

时间:2013-04-05 13:35:45

标签: asp.net-mvc templates telerik kendo-ui kendo-grid

是否可以使用包含复杂类型列表的实体模型创建clientrowtemplate以显示某些字段?我已经创建了一个服务器端rowtemplate但是当我在数据源上切换ajax时,它不起作用。我认为这是预期的。但是如何创建一个复杂的模板来显示集合,使用ajax作为MVC上的自定义行模板?

1 个答案:

答案 0 :(得分:2)

<强>解决

对于干净的代码,将委托分隔给任何其他代码块。请注意代码末尾的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)

希望它有所帮助。