如何:在内容查询 Web 部件中显示自定义字段

上次修改时间: 2010年4月19日

适用范围: SharePoint Server 2010

"内容查询 Web 部件"可显示 Microsoft SharePoint Server 2010 网站中页面上的内容的动态视图。此 Web 部件运行一个可跨网站集中的列表和网站的查询,然后在页面上显示该查询的结果。例如,可以使用此 Web 部件显示网站中最新发布的五篇文章,不管这些文章的存储位置如何。

此 Web 部件具有两大功能:查询和显示。查询确定要显示的内容,而显示确定您希望如何设置内容的样式并显示内容。还可以附加规则,以使此 Web 部件中仅显示符合一组特定规则的某种类型的项。

在工具窗格中,可以执行下面的操作:

  • 选择查询的范围。可以将此 Web 部件配置为跨整个网站集、从网站集中的特定网站或从某个特定列表查询项。

  • 选择要从中查询项的列表类型。

  • 指定 Web 部件应显示哪些内容类型。

  • 选择其他筛选器以控制 Web 部件显示的内容。例如,可以使用一个筛选器,以仅显示由特定用户编写的"文章页"。

  • 选择排序和分组选项,以确定项显示的顺序。

  • 选择样式选项,以控制 Web 部件如何显示项和组标题。

默认情况下,控制"内容查询 Web 部件"的显示方式的 XSL 样式表将呈现由查询返回的各个项的"标题"、"说明"、"ImageUrl"和"LinkUrl"列(如果存在)。Web 部件将"ImageUrl"和"LinkUrl"列分别作为图像和超链接呈现。默认情况下,"内容查询 Web 部件"使用 XSL 样式表来呈现这些列。

若要查询自定义内容类型,并在 Web 部件中显示这些内容类型的特定列,则必须在 .webpart 文件中执行少量的自定义。

本主题介绍如何在 Web 部件的查询中包括其他列以及如何以编程方式指示 Web 部件将这些列重命名为默认 XSLT 转换所预期的名称,然后使用默认 XSLT 转换样式呈现这些列。

若要了解与此自定义有关的步骤,请考虑您具有一个包含以下列的 Knowledge Base Articles 内容类型的情况:

  • 知识库标题(文本)

  • 产品(文本)

  • 版本(文本)

  • 状态(选择)

将标题为"知识库文章"的文档库与包含知识库文章的内容类型关联。您需要在主页上的"内容查询 Web 部件"中显示知识库文章内容,在 Web 部件中将"标题"列显示为 Title 字段,并将"产品"列显示为 Description 字段。为此,请执行下列步骤。

在内容查询 Web 部件中显示自定义字段

  1. 将"内容查询 Web 部件"添加到页:

    • 在"查询"部分,将"源"设置为显示来自"知识库文章"文档库(列表)的项。相应地设置列表类型和内容类型。

    • 在"显示"部分,将"项目样式"设置为"标题和说明"。

  2. 在 Web 部件文件中编辑属性以显示自定义字段。若要访问 Web 部件的 .webpart 文件,请在 Web 部件的"编辑"菜单上,单击"导出"。

    SharePoint Server 2010 使用对此 Web 部件可用的一组完整属性来生成 .webpart 文件。.webpart 文件是一个 XML 文件,可使用文本编辑器对其进行编辑。

  3. 在 .webpart 文件中,找到 CommonViewFields 属性。使用此属性可指定要在 Web 部件中显示的其他字段。添加列的内部名称和类型。

    <property name="CommonViewFields" type="string">KB_x0020_Title,Text;Product,Text;</property>
    

    备注

    无法在此属性中使用列的显示名称。可通过选定列表或文档库中的列属性来查找内部列名称。右键单击列,然后单击"属性"。列的内部名称将在 Address (URL) 属性中出现在 'Field=' 之后。在知识库文章方案中,列为"知识库文章"和"产品",而其内部名称分别为 KB_x0020_Title 和 Product。

  4. 将这些内部列名称映射到 XSLT 转换中显示的列的 Title 和 Description。为此,请编辑 DataColumnRenames 属性。

    <property name="DataColumnRenames" type="string">KB_x0020_Title,Title;Product,Description</property>
    

    备注

    默认 XSLT 转换会呈现以下四个字段:Title、Description、LinkUrl 和 ImageUrl。在 DataColumnRenames 属性中,验证指定的名称是否与 XSLT 转换中的名称匹配;即 Title、Description、LinkUrl 和 ImageUrl。

  5. 在本地保存 .webpart 文件。

  6. 在网页中,删除在步骤 1 中添加的"内容查询 Web 部件"。

  7. 导入 .webpart 文件并将 Web 部件添加到页面上。要导入 .webpart 文件,单击"页面",单击"添加 Web 部件",然后单击"导入"。浏览到 .webpart 文件,然后单击"上载"。

  8. 将 Web 部件拖动到页面中适当的区域。Web 部件应显示知识库"标题"和产品名称。

如果您希望除显示知识库标题和产品之外,还显示"状态"或"版本"列,请修改 XSLT 转换并为其他列添加呈现。

备注

上一示例说明如何在页面上编辑单个 Web 部件,以便在呈现的输出中包含自定义字段。不过,您也可以使用编辑器(如 Microsoft SharePoint Designer 2010)对 Web 部件进行更改。如果您需要自定义在页面布局上使用的 Web 部件,并自动在使用该布局创建的页面中包含自定义 Web 部件,则 SharePoint Designer 2010 是一个很有用的工具。还可以将自定义 Web 部件添加到 Web 部件库,这样便能将它们拖放到新页面的 Web 部件区域中。

请参阅

任务

如何:为内容查询 Web 部件自定义 XSL

如何:自定义内容查询 Web 部件的 RSS

如何:使用自定义属性自定义内容查询 Web 部件

概念

常见的 Web 部件和字段控件自定义任务