我在我的项目中使用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
等等......我应该写什么作为一个声明,只是让列显示用户角色?
答案 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(",");
}
}
}