【问题标题】:Telerik MVC Grid: Collection Inside ColumnTelerik MVC 网格:列内的集合
【发布时间】:2012-03-05 15:41:57
【问题描述】:

我在我的项目中使用 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

等等...我应该写什么作为仅让列显示用户角色的声明?

【问题讨论】:

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


    【解决方案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(",");
    
              }
           }
    
    
       }
    

    【讨论】:

    • 感谢您的解决方案 Mahmoud。我也解决了这个问题:columns.Template( @&lt;ul&gt; @foreach (var role in item.Roles) { &lt;li&gt;@role.Name&lt;/li&gt; } &lt;/ul&gt;) .Title("Roller");
    • 但是您的解决方案在 ajax 回调中出现问题(如果有的话)。
    猜你喜欢
    • 2012-05-23
    • 2013-02-16
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多