我在下面的结构中有一个本地数据源:
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,则为数据源中的所有行实现相同的结构。有没有办法避免迭代,因为我们的数据库有批量数据。
由于
答案 0 :(得分:0)
如果我错了,有人会纠正我。 问题是,当您过滤时,代码会尝试过滤绑定而不是模板。这就是为什么你有可以为零的值,你可以先编辑数据源然后再做条件然后绑定而不必做客户端模板。
你也可以把其他一些“排序”:
columns.Bound(c => c.Id).ClientTemplate(" #= Address.Country != null ? Address.Country.Name : '' # ")
这不行吗?我无法测试,因为我现在没有安装telerik。