积极答复者
SharePoint 2010用CAML怎样实现类似 where ColumnA = @queryString or @queryString = ''

问题
答案
-
Hi Jo Wang China,
其实你的问题可以绕过CAML语句的限制的。
首先你的CAMl是要根据页面的参数来过滤数据的。你可以写两个CAMl语句,第一个过滤的你已经写好了,你再写一个过滤的CAML语句。这个语句的条件是Title!=“定义一个在你的列表不可能出现的字符”,这条语句就可以查出所以数据。
最后加一个判断,如果传过来的参数不为空就用第一条caml语句,如果传过来是空的,就用第二条CAML语句。
Thanks,
Jack
- 已标记为答案 Jack-GaoModerator 2012年5月18日 10:53
-
或者使用XSLT Filtering,这个是我在前一个项目中用过的,包含了,忽略大小写,模糊匹配和判断空串。
[contains(translate(@Title, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),translate($TitleFilterString, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')) or $TitleFilterString='']
上善若水Posting is provided "AS IS" with no warranties, and confers no rights.- 已标记为答案 Jack-GaoModerator 2012年5月18日 10:53
全部回复
-
Hi Jo Wang China,
其实你的问题可以绕过CAML语句的限制的。
首先你的CAMl是要根据页面的参数来过滤数据的。你可以写两个CAMl语句,第一个过滤的你已经写好了,你再写一个过滤的CAML语句。这个语句的条件是Title!=“定义一个在你的列表不可能出现的字符”,这条语句就可以查出所以数据。
最后加一个判断,如果传过来的参数不为空就用第一条caml语句,如果传过来是空的,就用第二条CAML语句。
Thanks,
Jack
- 已标记为答案 Jack-GaoModerator 2012年5月18日 10:53
-
或者使用XSLT Filtering,这个是我在前一个项目中用过的,包含了,忽略大小写,模糊匹配和判断空串。
[contains(translate(@Title, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),translate($TitleFilterString, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')) or $TitleFilterString='']
上善若水Posting is provided "AS IS" with no warranties, and confers no rights.- 已标记为答案 Jack-GaoModerator 2012年5月18日 10:53