Telerik MVC网格:列内集合

时间:2012-03-05 15:41:57

标签: asp.net-mvc-3 telerik-grid telerik-mvc

我在我的项目中使用Telerik的MVC Grid非常好。不幸的是我终于被困了..问题是我想在列中显示一个集合。该集合是我的用户模型的属性。以下是示例代码:

{...}    
    .Columns(columns =>
    {
        columns.Bound(u => u.Id).Title("No.").Width(100);
        columns.Bound(u => u.UserName).Title("User Name");
        columns.Bound(u => u.CompanyName).Title("Company Adı");
        columns.Template(u =>
            {
                foreach(var item in u.Roles)
                {

                }
            }).Title("Roller");
        columns.Command(commands => 
            {                    
                commands.Custom("viewDetails")
                .Text("Detail")
                .DataRouteValues(route => route.Add(o => o.Id).RouteKey("UserAccountId"))
                .Ajax(false)
                .Action("UserAccountRead", "Account");
                commands.Delete().ButtonType(GridButtonType.ImageAndText);
            })
        .Width(200);
    })
    .Sortable()
    .Pageable(paging => paging.PageSize(10))
    .Localizable("en-EN")
    ) 
{...}

在foreach循环中,我尝试了很多东西来显示用户角色,但没有成功。

@item.Name
I Got : Error: Only assignment, call, increment, decrement and new object expressions can be used as a statement

@:<text>@item.Name</text>
I Got: ; required

等等......我应该写什么作为一个声明,只是让列显示用户角色?

1 个答案:

答案 0 :(得分:1)

您可以向模型添加ReadOnly属性,为您返回简化的格式化文本。例如你:

   partial class MyModel{
       public string RolesAsString
       {
          get{
                string result="";
                foreach(var item in this.Roles)
                {
                     result += string.format("{0},",item);
                }
                return result.trim(",");

          }
       }


   }