MOSS CAML(3)综合用法的介绍

来源:互联网 发布:图书馆找书软件 编辑:程序博客网 时间:2024/05/14 16:49

协作应用程序标记语言 (CAML) 的 View 元素提供一个在 Microsoft SharePoint? Team Services 的数据库中执行查询和返回值的灵活方法。此元素适应对自定义 SharePoint Team Web 站点的广泛需求,从执行查询以便将数据返回到脚本进行处理,到布置页面部分中列表数据的显示。

要点 您必须具有写页面权限,才能上载页面。您必须以本地 Administrators 组成员的身份登录到服务器计算机,才能写入数据库。

根据您的目的是返回并显示值,还是仅返回值以便在脚本中进行处理,Web 站点的 Default.htm 页或任何列表的 AllItems.htm 页上的列表视图典型方案包含下列子元素。


Query 如果您只希望在一个列表中返回所有值,则该子元素可以为空。
ViewBody 可以使用 ViewBody 子元素(带有或不带 ViewHeader 和 ViewFooter 元素)来布置用于显示数据的视图表。
ViewEmpty ViewEmpty 子元素指定当查询未返回任何数据时所显示的内容。它还为执行替代视图提供了有用的制约性,以防查询中不返回任何项目。请参见下面的示例。
ViewFields 当视图不用于显示项目,只用于返回值进行处理时,ViewFields 子元素可以为空。
RowLimit RowLimit 子元素指定要在当前窗口中显示的项目数。
PagedRowset 当 RowLimit 元素包含的值超出时,PagedRowset 子元素将为下一个窗口定义一个视图。
Toolbar 在 AllItems.htm 页上,Toolbar 子元素定义紧靠列表视图之上的页中显示的按钮和部分行。

CAML HTML 元素与 CDATA 标记共同用来在视图中嵌入标记语言或脚本(例如 <HTML><![CDATA[<TABLE><TR><TH>]]></HTML>)。

要点 为了完成下述任务,您必须具有写页面权限才能上载页面。您必须以本地 Administrators 组成员的身份登录到计算机,才能写入数据库。

假设您具有 SharePoint Team Services 数据库的访问权,则可以通过从 Views 表的 View 列复制视图方案来学习和自定义视图。如果有许多视图,您可以通过要修改 ListView 组件的全局统一标识符 (GUID) 来标识相应的数据库记录。在其他情况下(例如在表单中),您可能需要引用 Lists 表(列表的列表)中 ID、Name 或 Title 列值的组合。然后,您可以使用其视图方案替换整个组件,并使用以下 CAML 包围已复制的视图:

<ows:XML>

<SetList>[u_YourCustomListName[without "u_" for native lists]]</SetList>

<View>

[Copied view schema goes here]

</View>

</ows:XML>

在 Microsoft FrontPage 中,您可以选择一个视图,右键单击此视图,然后单击 Layout Customization 以展开视图方案并进行自定义。

注 应始终保存原始站点页面的副本,以便可以在需要时复原组件。

创建基本列表视图

下例布置了用于显示自定义列表 (u_MyCustomList) 的视图表。ViewFields 元素指定要在视图页眉中显示的 Title、Stock 和 Price 字段名称以及视图正文中显示的这些字段的值。

<ows:XML>

<SetList>[u_MyCustomList]</SetList>

<View Name="MyNewView">

<ViewFields>

<FieldRef Name="Title"/>

<FieldRef Name="Stock"/>

<FieldRef Name="Price"/>

</ViewFields>

ViewHeader 元素包含 Fields 和 Field 元素,这些元素枚举了 ViewFields 元素所指定的字段名称。HTML 元素包含用于显示表格标题的标记语言,这取决于 Web 或子站点的 /_layouts/styles/ows.css 文件中定义的 ms-vh 样式。

<ViewHeader>

<HTML><![CDATA[<TABLE><TR class="ms-vh">]]></HTML>

<Fields>

<HTML><![CDATA[<TH>]]></HTML>

<Field/>

<HTML><![CDATA[</TH>]]></HTML>

</Fields>

<HTML><![CDATA[</TR>]]></HTML>

</ViewHeader>

ViewBody 元素包含为列表中的每个项目枚举字段值的 Fields 和 Field 元素。HTML 元素包含用于在表格单元格中显示这些值的标记语言,这取决于 Web 或子站点的 /_layouts/styles/ows.css 文件中定义的 ms-vb 样式。

<ViewBody>

<HTML><![CDATA[<TR class="ms-vb">]]></HTML>

<Fields>

<HTML><![CDATA[<TD>]]></HTML>

<Field/>

<HTML><![CDATA[</TD>]]></HTML>

</Fields>

<HTML><![CDATA[</TR>]]></HTML>

</ViewBody>

<ViewFooter>

<HTML><![CDATA[</TABLE>]]></HTML>

</ViewFooter>

Query 部分查询股票小于 15 或价格大于 20.00 的情况。

<Query>

<Where>

<Or>

<Lt>

<FieldRef Name="Stock"/>

<Value Type="Number">

15

</Value>

</Lt>

<Gt>

<FieldRef Name="Price"/>

<Value Type="Currency">

20.00

</Value>

</Gt>

</Or>

</Where>

<OrderBy>

<FieldRef Name="Title"/>

</OrderBy>

</Query>

</View>

</ows:XML>

为了返回指定字段的所有值,您可以转而使用空的 Query 元素 ()。

原创粉丝点击