最近参与一个SharePoint项目,客户要求不能包含任何服务器端代码(脚本除外),只能定制,所以项目中需要大量使用SharePoint Designer。当我们不能使用任何开发手段的时候,我就需要尽量研究SharePoint Designer,了解SPD的限制与潜力,进而与客户博弈,一方面尽量挖掘SPD的能力来满足客户需求,另一方面根据对SPD能力的研究控制客户的需求。在项目进行过程中,我会逐渐把项目中积累的一些SharePoint Designer应用的技巧拿出来和大家分享。
在客户众多需求中包含一个“关键字查询列表”,客户希望用关键字模糊搜索列表中所有的文本字段。该需求其实很简单,不过翻遍默认的web part,只有“filter”和“search”相关的Web part和这个需求能挂上边。但是,‘filter’都是筛选器,无法做到关键字查询,只能精确匹配,search相关的都是与SharePoint搜索引擎相关的Web Part,杀鸡用不着牛刀!
我们的解决方法是:利用Data View Web Part的filter和parameter实现带参数的查询,使用Form Web Part给DataView WebPart提供关键字。
有以下一个列表:
用SharePoint Designer打开新创建的Web 部件页“View.aspx”页面,把以上列表拖入Web Part区域中即可插入一个Data View(数据视图):
编辑列,设置显示列为“标题”,“描述”,“来源”
选择上图“常用Data View任务”的“参数”,新建建一个“表单”参数“Keyword”:
选择上图“常用Data View任务”的“筛选”,添加需要查询的文本字段,使用“包含”实现模糊查询,“值”选择使用新建的“Keyword”参数,“与/或”则均选择“或”:
设置完成后,点“确定”,并保存页面。浏览View.aspx,在页面添加一个Form Web Part:
设置“表单Web部件”与Data View Web Part进行连接:
选择连接类型为“参数 获取位置”,点“配置”
选择Keyword,点击“完成”。结束配置,回到页面。输入“猪肉”关键字,搜索如下:
输入“新浪”关键字,搜索如下:
注:其实Form Web Part可以添加多个文本框,也可以添加下拉框,Data View的filter的可设置选项也比较多,也可以使用XSLT进行筛选,所以这种方法实现的模糊查询还是有一定潜力的。