使用Telerik RadGrid时遇到问题。 当我在数据列上应用过滤器时,我将过滤器表达式用作Linq表达式。 所以(服务器端)我在NeedDataSource处理程序中使用Dynamic Linq(来自MIcrosoft LINQ示例)解析它。 问题是,当我将“Start With”指定为过滤器时,我会收到以下“Linq表达式”:
(iif(Name == null, "", Name).ToString().StartsWith("A"))
什么是“iif”????什么对应“iif”???? 用法很明显:处理空值....
奇怪的是,当我在网格上应用过滤器时,从网络服务而不是从服务器端回调加载数据,所有工作和这个问题都没有提出。 两种方式,两种解析功能,不仅是常见的一种。
有什么想法吗?提前致谢
答案 0 :(得分:0)
在动态LINQ中iif(x,y,z)
是三元的另一种语法if x ? y : z
,同名是used in VB for some time ("Immediate IF")
在这种情况下,它看起来像null-coalescing operator ??,但似乎Dynamic LINQ不支持
(Name ?? string.Empty).ToString().StartsWith("A")
也许尝试用三元符号替换iif?你能澄清一下发生的确切错误是什么吗?