[MOSS 译]如何:在WEB内容查询部件中使用自定义的字段
译者的话:数据视图可以很方便地来交叉或是使用单独的数据源来显示各种视图,但是对于开发人员来说,数据视图有一个不太方便的功能就是开发或是定制出的数据视图根本没有办法重用,你不能像使用WEB部件一样随意地导到某个页面或网站中去。但是有一个WEB部件,我们可以使用它来做各种各样的定制,这就是WEB内容查询部件。
原文地址:http://msdn.microsoft.com/zh-cn/library/ms497457(en-us).aspx
如何:在内容查询WEB部件中显示自定义字段
内容查询WEB部件可以显示动态的视图。这种WEB部件可以在同一网站集中运行跨网站和列表查询,然后在页面中来展示查询结果。比如,你可以使用这种WEB部件去显示某个网站包括所有存储位置下最新的5个文章。
这个WEB部件有两个主要的部分:查询和演示文稿。查询决定了你想去显示的内容,演示文稿决定了你用什么样式来显示这个内容。你也可以应用规则来决定某种特定的类型可以被这个WEB部件所显示。
在工具面板里,你可以做如下的设置:
选择查询范围。你可以配置WEB部件查询整个网站集、网站集中的某个网站或是特定的列表。
选择查询的列表类型。
指定显示的内容类型。
选择附加筛选以控制显示内容。比如,某个筛选被设置成显示属于该作者所有文章页。
选择排序和分组选项以决定项目显示的顺序。
选择样式选项以控制WEB部件如何显示项目和组页眉。
默认情况下,控制展示样式的XSL样式表渲染查询结果项的如下四个字段:标题、说明、图片URL和URL链接栏(如果存在)。这个WEB部件会分别把图片URL和URL超链接栏渲染成图片和超链。
如果你希望查询并渲染自定义内容类型指定的栏,你需要在.webpart文件里做一些小的修改,以让默认的XSL去支持自定义的栏。
本节解释了如何在WEB部件的查询中包括上述附加的自定义栏;如何告诉WEB部件自动地去重命名上述栏为默认的XSLT所支持的栏名;使用默认的XSLT转换样式去渲染这些栏。
为了更好地理解这些步骤,让我们举个例子加以说明。比如你有一个知识库文章(Knowledge Base Articles)内容类型,其中包括如下的栏:
知识库标题 (文本)
产品 (文本)
版本 (文本)
状态 (选项)
你把这个内容类型关联在一个文档库中,这个库就叫做知识库文章。你想在主页的内容查询WEB部件中查询这个内容类型,并显示知识库标题和产品栏,要做到这些,必须完成如下的步骤:
显示自定义字段
1. 在页面中添加一个“内容查询WEB部件”。
在“查询”一节,设置查询源为从“知识库文章”这个特定的列表查询。然后依次设定好列表类型和内容类型。
在“演示文稿”一节,设置项目的样式,“标题和说明”。
2. 编辑WEB部件的文件以显示自定义的属性。为了修改WEB部件的文件,先在WEB部件的“编辑”菜单中点击“导出”,来导出.webpart文件。
MOSS 2007生成一个.webpart文件,其中有完整的WEB部件属性的集合。这个文件是XML文件,所以你可以通过任务文本编辑器来编辑它。
3. 在这个.webpart文件中,找到CommonViewFields属性,使用这个属性去指定你想要去显示的附加字段。使用如下的格式来增加栏和类型。
<property name="CommonViewFields" type="string">KB_x0020_Title,Text;Product,Text;</property> |
注意: |
你不能使用你的栏本身的名称而应该使用内部名称。你可以通过右击这个栏然后选“属性”,然后在浏览器的“地址”一栏,你可以找到”Field=”这个字串,后面就是这个栏的内部名称。本示例中的“知识库文章标题”和“产品”的内部名称就是:KB_X0020_Title和Product。 |
4. 映射这些内部栏到默认XSLT转换中的标题和说明。做这一步需要编辑DataColumnRenames属性。
<property name="DataColumnRenames" type="string">KB_x0020_Title,Title;Product,Description</property> |
注意: |
默认的XSLT转换可以渲染如下四个字段:标题、说明、URL超链、图片URL。在你的DataColumnRenames属性,确认你指定了相符的XSLT转换名称:Title,Description,LinkUrl,ImageUrl。 |
5. 保存这个.webpart文件。
6. 在WEB页面,移除你第1步添加的内容查询WEB部件。
7. 导入第5步保存的文件,做法如下:单击“页面”、“添加WEB部件”下的“导入”。指定那个.webpart文件,单击“上传”。
8. 把这个WEB部件拖至页面的合适区域。现在这个WEB部件可以显示知识库标题和产品栏了。
如果你想把状态和版本也显示在知识库标题和产品后面,可以通过修改XSLT转换然后再给附加的栏添加渲染。
注意: |
上述的示例告诉你如何去编辑单个的WEB部件以在其中包括自定义的字段。尽管如此,你同样也可以使用SPD2007来修改WEB部件。SPD 2007是自定义WEB部件的非常棒的工具,特别是在页面布局中使用时,所有基于这个页面布局的页面中的WEB部件都会自动地应用修改后的特性。你也可以添加一个自定义的WEB部件到WEB部件库中,以便在新的页面中通过拖放到某个区域。 |