自定义查询List或DataView的思路
- 直接查询ListViewWebPart
- 使用SharePoint带的各种FilterWebPart与List进行连接.
- 用VS做自定义的WebPart,然后通过WebPartZone找到包含在里面的ListWebPart,通过设置其CAML查询来实现过滤.
- 直接查询DataViewWebPart
- 使用SharePoint带的各种FilterWebPart与其进行连接,此方法在<SharePoint Server 2007宝典>中的P319中有介绍.
- 使用Form WebPart:这种方式包含在Form中的各个控件只能是HTML的客户端控件,所以在诸如像填充DropDownList这种操作只能用JS来实现,而填充的值可能需要从服务器获取,还是挺麻烦的.另外,设置的条件也是死的,例如name=[name]这种关系,如果需要在用户没有输入相应的条件时而乎略某些过滤条件,就不能实现了.(因为过滤条件是直接写在服务端控件的selectCommand属性里的).而如果使用XSLT查询,则可能会通过XPath实现条件的动态设置,但是由于是从数据库中取出所有的数据后,再经过服务器端通过XLST进行过滤后输出相应的HTML给客户端,所以性能上会有损失.
- 使用内嵌代码:http://msdn.microsoft.com/zh-cn/library/bb862025.aspx,使用这种方式,将损失安全性,但是可以向表单中添加相应的服务器端控件,然后通过设置Form WebPart的selectcommand属性来动态的设置过滤条件.
一点说明:为什么在标题中要嵌入英文?原因是为了能够让国外的网友能查询到这篇文章。平常在Google上查资料的时候,经常参考国外网友的博客,帮助我解决了很多问题,所以我也想让他们能够参考我写的内容。当然文中我不可能全部译为英文,所以我尽量把代码粘全,靠代码说话吧。