kendo网格的不同数据源结构导致过滤问题

时间:2016-04-15 06:12:24

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我在下面的结构中有一个本地数据源:

Account:null
AccountId:null
Address:Object
 ---> Country:Object
            --->Name:"Afghanistan"
CreatedBy:"System"
CreatedDateTime:"/Date(1457934873890)/"
Id:"ad92aa1e-5b48-41bf-a68a-52dfcab009e3"
IsDeleted:false
IsReferred:false
IsSystemData:true

我在这里使用一些字段用于kendo网格。执行国家/地区字段的过滤操作时出现问题。将数据源绑定到列

columns.Bound(c => c.Address.Country.Name).ClientTemplate(" #= Address.Country ? Address.Country.Name : '' # ").Width(110);

国家/地区是表单中的可选字段。如果用户将其保留为空,则datasource将不是国家/地区名称属性。它会将Address.Country保留为null。在过滤时,对于那些空的国家/地区字段,错误发生在"Cannot read property of Name of null value"

请指导我克服这种情况。我尝试通过更改迭代数据源的数据源并将name属性添加为空对象,如果它为null,则为数据源中的所有行实现相同的结构。有没有办法避免迭代,因为我们的数据库有批量数据。

由于

1 个答案:

答案 0 :(得分:0)

如果我错了,有人会纠正我。 问题是,当您过滤时,代码会尝试过滤绑定而不是模板。这就是为什么你有可以为零的值,你可以先编辑数据源然后再做条件然后绑定而不必做客户端模板。

你也可以把其他一些“排序”:

columns.Bound(c => c.Id).ClientTemplate(" #= Address.Country != null ? Address.Country.Name : '' # ")

这不行吗?我无法测试,因为我现在没有安装telerik。