MOSS CAML(5)在视图中嵌入视图

在视图中嵌入视图

视图可以嵌入到其他视图中,以便从 SharePoint Team Services 数据库中的多个表返回值。在下例中,将两个视图嵌入到主页上的另一个框架视图中,以便根据当前用户是否有过期任务来显示不同的消息。

此示例包含 Tasks 列表的两个视图,一个用于在当前用户有过期任务的情况下返回具有特定格式的消息,另一个用于返回过期项目的视图。

<ows:XML>

<SetList>Tasks</SetList>

<View>

<ViewFields>

<FieldRef Name="AssignedTo"/>

</ViewFields>

<Query>

<Where>

<And>

<Eq>

<FieldRef Name="AssignedTo"/>

<Value Type="Integer">

<UserID/>

</Value>

</Eq>

<And>

<Lt>

<FieldRef Name="DueDate"/>

<Value Type="DateTime">

<Today/>

</Value>

</Lt>

<Neq>

<FieldRef Name="Status"/>

<Value Type="Choice">Completed</Value>

</Neq>

</And>

</And>

</Where>

</Query>

<ViewBody>

<HTML><![CDATA[<TABLE><TR><TD class="Warning">Hello ]]></HTML>

<LookupColumn Name="AssignedTo" HTMLEncode="TRUE"/>

<HTML><![CDATA[, these items are now past due!</TD></TR>

<TR><TD>

<A href="mailto:[email protected]" class="ResolveNow">

Please contact your manager</A>

</TD></TR>

<TR><TD>]]></HTML>

此框架视图可针对当前用户的 ID 等于 AssignedTo 字段值的情况以及截止日期在今天之前且状态不等于 Completed 的情况,查询数据库中的 Tasks 表。LookupColumn 元素用于将用户名称作为对用户的个性化警告的一部分返回。

在代码中的此处,可以插入 Tasks 列表的其他视图,以返回并显示过期项目。

<SetList>Tasks</SetList>

<View>

<ViewFields>

<FieldRef Name="LinkTitle"/>

<FieldRef Name="Priority"/>

<FieldRef Name="Body"/>

<FieldRef Name="DueDate"/>

</ViewFields>

<Query>

<Where>

<And>

<And>

<Lt>

<FieldRef Name="DueDate"/>

<Value Type="DateTime">

<Today/>

</Value>

</Lt>

<Neq>

<FieldRef Name="Status"/>

<Value Type="Choice">Completed</Value>

</Neq>

</And>

<Eq>

<FieldRef Name="AssignedTo"/>

<Value Type="Integer">

<UserID/>

</Value>

</Eq>

</And>

</Where>

</Query>

<ViewHeader>

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

<Fields>

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

<Field/>

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

</Fields>

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

</ViewHeader>

<ViewBody>

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

<Fields>

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

<Field/>

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

</Fields>

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

</ViewBody>

<ViewFooter>

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

</ViewFooter>

</View>

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

</ViewBody>

这在当前用户具有过期任务的情况下,完成了外部框架视图的 ViewBody 部分。ViewEmpty 部分可用于包含另一个视图,此视图可将另一则消息传送给没有过期任务的当前用户。

<ViewEmpty>

<SetList>UserInfo</SetList>

<View>

<ViewFields>

<FieldRef Name="Title"/>

</ViewFields>

<Query>

<Where>

<Eq>

<FieldRef Name="ID"/>

<Value Type="Integer"><UserID/></Value>

</Eq>

</Where>

</Query>

<ViewBody>

<HTML>

<![CDATA[<TABLE><TR><TD class="NoOverdues">Hello ]]>

</HTML>

<Field Name="Title"/>

<HTML><![CDATA[, you have no past due items. Great work!</TD></TR></TABLE>]]></HTML>

</ViewBody>

</View>

</ViewEmpty>

</View>

</ows:XML>

通过将定义添加到 /_layouts/styles/ows.css(如下所示),可以为上述属性定义样式:

.Warning {

font-size: 14pt;

color: red;

font-weight: bold;

font-family: verdana;

}

.ResolveNow {

font-size: 12pt;

color: red;

text-decoration: underline;

font-family: verdana;

padding: 12px;

font-weight: bold;

}

.NoOverdues {

font-size: 12pt;

color: green;

font-family: verdana;

padding: 12px;

font-weight: bold;

}

你可能感兴趣的:(MOSS CAML(5)在视图中嵌入视图)