我添加一个非常简单的 XsltListViewWebPart 到应用程序页面。就像这样:

XsltListViewWebPart lvWebPart = new XsltListViewWebPart { ChromeType = PartChromeType.None, ListUrl = "/somesite/list" };
Page.Controls.Add(lvWebPart);

一切正常(我可以下载文件、创建文件夹、选择不同的视图等) - 但文件夹的链接有错误的 href:它们总是指向根网络!

请参阅这些示例:enter image description here

如您所见,文档正确链接到 ../sites/sr/doclib/mydocument.docx 但是,在查看文件夹时,他们忘记了当前所在的上下文(它们位于 http://../sites/sr/_layouts/../../..Detail.aspx?RootFolder=..., ,重要的部分是/sites/sr/)。他们尝试转到根网站集上下文中的 _layouts 文件夹 - 如上所示: http://../_layouts/../../..Detail.aspx?RootFolder=...

或者再总结一下:

  • 申请页面位置:
    • http://sp/sites/sr/_layouts/my/application/Detail.aspx
  • 我正在访问的列表/doclib
    • http://sp/sites/sr/mylist
  • XsltListViewWebPart 内文件夹的 URL
    • http://sp/_layouts/my/application/Detail.aspx?RootFolder=...
  • 文件夹的 URL 应该是这样的
    • http://sp/sites/sr/_layouts/my/application/Detail.aspx?RootFolder=...

关键来了:当使用 列表视图Web部件, ,一切都按其应有的方式进行!因此,我不使用上面的 XsltListViewWebPart,而是使用 ListViewWebpart - 并且文件夹可以工作,上下文会被考虑在内,文件夹具有我想要的 URL(http://../sites/sr/_layouts/../../..Detail.aspx?RootFolder=...

我尝试设置 网络标识 XsltListViewWebpart 上的属性希望它能够设置上下文,但没有成功。我现在认为要么是我配置错误,要么是新的 SharePoint 2010 XsltListViewWebPart 有错误 - 因为相同的代码适用于同一应用程序页面上的 ListViewWebPart。

希望有人能验证一下这个问题。

有帮助吗?

解决方案

简而言之,只是不要在应用程序页面上使用 XsltListWebPart。

以下是一些总结性的解释:

XsltListViewWebPart 和其他 OOTB SharePoint Web 部件(尤其是复杂的)显然不应该在应用程序页面环境中工作。换句话说,它们没有在那里进行测试,因此它们的可操作性得不到保证。

这可以通过至少阅读以下 MSDN 文章来间接证实:

..站点页面还可以托管动态Web零件和Web部件区域等功能。应用程序页面无法执行这些操作。

MS课程中也有说明 10232.

特别是关于 XsltListViewWebPart (XLV),我在应用程序页面使用它时听说了多个问题,并且自己也遇到了其中一些问题。

例如,如果您使用 XslLink 属性自定义 XLV,XLV 将无法缓存 xsl 文件,因此 ECB 和 Ribbon 上的相应按钮将无法工作。在日志中,您将收到以下异常消息:

尝试使用已不复存在的对象。

此外,您还可以查看以下问题,了解应用程序页面上 OOTB Web 部件问题的另一个示例(这次是 ListViewWebPart):

其他提示

首先,我认为安德烈一语中的。此外,您可以尝试使用 ListViewByQuery 控件 如果您正在寻找简单的数据表格布局(即,在应用程序页面上)一个列表)。Microsoft 在 OOB 工作流程状态页面(即_layouts/wrkstat.aspx) 用于显示任务。

我没有尝试过使用 ECB 菜单等,但确实将其用于只读数据列表。因为听起来您正在将它用于带有文件夹的文档库,所以如果没有大量代码来使文件夹、排序和分页正常工作,我对它的正常工作没有信心。它可能值得一试,尽管我不会花太多时间在它上面,因为站点页面可能是使用较少自定义代码的更好方法。

如果您使用 ListViewByQuery,请务必查看这些链接以进行分页等:

许可以下: CC-BY-SA归因
scroll top