2012-03-05 100 views
1

我在我的項目中使用了Telerik的MVC Grid,這真的很好。不幸的是我最後被困住了......問題是我想在一列中顯示一個集合。該集合是我用戶模型的一個屬性。下面是示例代碼: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

您可以將ReadOnly屬性添加到您的模型中,該模型會爲您返回一個簡化的格式化文本。例如你:

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

      } 
     } 


    } 
+0

感謝您的解決方案馬哈茂德。我也解決了這個問題:'columns.Template( @

    @foreach在item.Roles(VAR角色) {
  • @ role.Name
  • }
) .title僞( 「滾筒」);' – 2012-03-07 07:54:11

+0

但是你的解決方案會在ajax回調中產生問題(如果有的話)。 – 2012-03-07 08:31:51