CBQ Web Part匿名读取Document Library数据失败的解决方案

最近在项目当中遇到了一个很奇怪的问题,因为我们项目中用到了大量的 CBQ (Content By Query) Web Part 来在页面上呈现SharePoint List 或SharePoint Document Library里的数据,当SharePoint 2010 开启匿名后,我们发现在匿名模式下页面上有些CBQ可以正常显示数据,而有些CBQ却不能正常显示数据,给出的提示信息如下:

 

Error info:

Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator.


Correlation ID:92354a09-eb96-4d99-b436-ba75e71020fc

 

然而,当用账号登录访问时,所有的CBQ都是正常工作的,后来我们找原因发现:所有从SharePoint List里读取数据的CBQ任何时候都能正常工作,所有从SharePoint Document Library里读取数据的CBQ在匿名模式下出现上面的错误信息,而在认证模式下能够正常工作,这就是原因所在。经过研究和搜索,我们找到了一个解决方案,那就是往相应的CBQ的CommonViewFields属性中加两个字段DocumentIconImageUrl和OnClickForWebRendering如下所示:

<property name="CommonViewFields" type="string">DocumentIconImageUrl;OnClickForWebRendering;</property>

 

然后保存,再将改过的CBQ上传添加到相应的Web Part zone里,保存并刷新页面,一切都正常了,不管是匿名模式下还是认证模式下,现在所有的CBQ都能正常工作了。^_^

        

这个问题也许是SharePoint 2010的一个bug,期待下一个版本能够修复它。

 

posted @ 2010-11-14 17:47  crazysharepoint  阅读(427)  评论(1编辑  收藏  举报