2010-09-15 73 views
1

我在使用Telerik RadGrid时遇到问题。 当我在数据列上应用过滤器时,我使用过滤器表达式作为Linq表达式。 因此(服务器端)我使用Dynamic Linq(来自MIcrosoft LINQ示例)在NeedDataSource处理程序中解析它。 的问题是,当我指定的“开始”作为过滤器,我收到以下为“LINQ表达式”:Telerik RadGrid中的LINQ过滤器问题

(iif(Name == null, "", Name).ToString().StartsWith("A")) 

什么是“IIF” ????什么对应“iif”? 用法很明显:处理空值...

奇怪的是,当我将过滤器应用于从Web服务加载数据而不是从服务器端回调的网格上时,所有作品和此问题不会引发。 两种方式,两种解析功能,不仅是常见的一种。

有什么想法?在此先感谢

+0

虽然你已经有一段时间是StackOverflow的成员,但请允许我提醒我们通常在这里做的三件事:1)当你接受帮助时,尝试给予它**在你的专业领域回答问题** 2)['阅读常见问题'](http://tinyurl.com/2vycnvr)3)当你看到好的问答时,用['灰色三角形](http://i.imgur.com) /kygEP.png),因为系统的可信度基于用户通过分享知识获得的声誉。还记得接受更好地解决你的问题的答案,如果有的话['通过按复选标记'](http://i.imgur.com/uqJeW.png) – 2011-05-05 04:52:54

回答

0

在动态LINQ iif(x,y,z)是另一种语法三元如果x ? y : z,同样的名字是used in VB for some time ("Immediate IF")

在这种情况下,它看起来像它null-coalescing operator ??,但似乎动态LINQ不支持

(Name ?? string.Empty).ToString().StartsWith("A") 

也许尝试用三元符号替代iif?你能澄清什么是确切的错误发生?

+0

是的,但问题是,RadGrid指定iif , 不是我!这就是问题! – 2010-09-15 10:00:04

+0

@Marco:那个“iif”有什么问题?它应该很容易通过动态LINQ解析...你为什么要摆脱它? – 2010-09-15 10:12:12

+0

DynamicLinq代码(来自Microsoft示例 - http://msdn.microsoft.com/en-us/vcsharp/bb894665.aspx)不解析iif。那就是问题所在。 – 2010-09-15 10:17:40