我有一个包含可以为空的数据的列的网格
Html.Telerik().Grid(Model)
.Columns(columns =>
{
columns.Add(o => o.Foo);
}
这样可行,但在客户端上显示[object Object]
之类的内容。据说它应该显示Foo.Name,我试图覆盖Foo的ToString() - 没有用,我试图将其更改为columns.Add(o => o.Foo.Name);
,但后来它不想渲染整个网格。
我尝试使用columns.Bound(o => o.Foo.Name);
- 没有结果。顺便说一句,Add()
和Bound()
之间有什么区别?
答案 0 :(得分:3)
我会使用列的模板来执行此操作。这是一些代码
Html.Telerik().Grid(Model)
.Columns(columns =>
{
columns.Add(o => o.Foo).Template(o =>
{
%>
<%= o.Foo != null ? o.Foo.Name : "" %>
<%
})
.ClientTemplate("<#= Foo != null ? Foo.Name : '' #>");
}
答案 1 :(得分:2)
假设Model
是RowData
个实例的集合,您可以向FooName
类添加一个getter RowData
:
public class RowData
{
public string FooName
{
get { return Foo == null ? null :: Foo.Name; }
}
}
然后你可以绑定到FooName
:
Html.Telerik().Grid(Model)
.Columns(columns =>
{
columns.Bound(o => o.FooName);
}
我现在无法测试它。可能你也需要一个二传手。它不需要做任何事情。
我不知道Add()
做了什么。我从来没有用过它。