【问题标题】:Custom SharePoint List View - can I put it in a feature (WSP)?自定义 SharePoint 列表视图 - 我可以将其放入功能 (WSP) 中吗?
【发布时间】:2009-05-05 14:40:10
【问题描述】:

这是我的情况:

我在 SharePoint 2007 Enterprise 中工作,我有一个功能,可以在我部署和激活它时为我创建一个列表。到目前为止,我通常的工作流程是部署解决方案、激活它,然后打开 SharePoint Designer 来自定义列表。

我的自定义通常非常复杂,但我会保持简单。在这种情况下,假设我编辑 AllItems.aspx,将数据视图转换为 XSLT 数据视图,然后添加一列静态文本。

我使用了一些不同的工具(SPSource、VSeWSS、SharePoint Manager、OCDExportList 等)来提取我的自定义 schema.xml 和所有默认视图,但我还没有找到任何运气来弄清楚代码的位置AllItems.aspx 现在已经自定义了。

当我提取(使用上述任何工具)时,AllItems.aspx 与默认值没有什么不同。 schema.xml 中的<View> 元素缩减为一行,例如:

<View DefaultView="TRUE" 
      MobileView="TRUE" 
      MobileDefaultView="TRUE" 
      Type="HTML" 
      FPModified="TRUE" 
      DisplayName="All Documents" 
      Url="Forms/AllItems.aspx" 
      Level="1" 
      ContentTypeID="0x" />

我真的被困在这里......我不知道该怎么办。甚至可能吗?如果我可以在我的功能中包含我的自定义设置,它将为我节省大量时间(和文档)。

如果我缺少任何其他有用的信息,请告诉我...谢谢!


最新发现

在过去的几个小时里,我发现了更多信息。如果我将列表保存为列表模板,然后将 .stp 文件在本地保存为 .cab 文件,我可以提取其内容。其中一个文件是manifest.xml,其中包含schema.xml 以及其他一些部分。

其中一个部分是&lt;webparts&gt; 部分,每个视图都有一个&lt;webpart&gt;。每个&lt;webpart&gt; 元素都包含一串很长的字符……不知道这些字符实际代表什么。

重要的是,如果将任何自定义视图部署为解决方案的一部分,我认为它实际上必须是 Web 部件......但我并不肯定。

【问题讨论】:

    标签: sharepoint list view solution


    【解决方案1】:

    不久前我也遇到过类似的问题。我必须创建一个非常自定义的视图,并且我必须完全放弃 ListFormWebPart,并创建了自己的 webpart 来呈现数据。

    通常,当您在 SPDesigner 中自定义 aspx 文件时,您所做的所有更改都将在 aspx 文件本身中。在 SPDesigner 中打开它,您将看到您所做的所有更改。转换为 XSL 数据视图后,标准的 ListFormWebPart 将替换为 DataFormWebPart,它不关心 schema.xml 中指定的 &lt;View&gt; 标记;在 aspx 文件本身中查找 ListFormWebPart。

    为什么不在列表上进行所有您想要的自定义,将列表保存为模板(它将包括关联的 AllItems.aspx),然后在您的功能中使用该模板来创建您的列表?您可以从代码中添加额外的列(如果它是动态的并且不能包含在模板中),等等。

    【讨论】:

    • 是的,我知道我可以在 SharePoint Designer 中看到我的代码 - 我只是不确定该代码实际保存在哪里。它似乎在 AllItems.aspx 中,但是当您运行提到的任何工具以提取 schema.xml 和视图时,找不到该代码。在过去的几个小时里,我发现我可以将视图保存为模板,在本地保存该模板,重命名为 .cab 并打开它。它包含一个 manifest.xml,其中包含 schema.xml 以及一堆其他东西。一个部分是一个看起来很有希望的 部分......
    【解决方案2】:

    是的,你可以。从 Codeplex 获取 Sharepoint 管理器工具 http://spm.codeplex.com/

    将它安装在您农场的机器上,它将允许您通过显示所有对象的树视图浏览农场。

    通过 Sharepoint GUI 创建列表,然后使用 SPM 浏览到它。

    SPM 将允许您提取 MOSS/WSS 创建的描述列表视图的 xml(它显示在左侧的属性网格中),然后您可以将其放入 manifest.xml 中

    【讨论】:

      【解决方案3】:

      我也有类似的问题,并且对此进行了大量研究。对我来说,dataview web 部件是 Sharepoint 中最强大的组件之一。不幸的是,我必须以 .wsp 包的形式提供我的解决方案,这意味着我不能只创建站点并在该站点上使用 Designer。我采用了两步方法,我使用设计器创建我的数据视图,并且我还编辑了该数据视图的代码以将 ListID 和 Guids 替换为 ListName 和实际列表名称。只要列表名称相同,它就可以在任何页面/站点中导出和使用。我也在我的解决方案中创建了一个 webpart 页面文档库,我相信我可以使用 onet.xml 文件将具有 webparts 的页面添加到该库中。我会尽快得到测试的结果。

      【讨论】:

        猜你喜欢
        • 2011-12-07
        • 2020-12-23
        • 1970-01-01
        • 2013-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-19
        • 1970-01-01
        相关资源
        最近更新 更多