WSS3SDK之:栏之简介
一个网站栏(site column)是一个可重用的栏定义,或者说是一个模板,我们可以将其分配给位于多个SharePoint站点中的多个列表。通过网站栏可以减少重复劳动,并可以帮助我们确保元数据跨网站和列表的一致性。比如,假设我们定义了一个网站栏Customer。用户可以将该栏添加到其自己的列表中,并在其自己的内容类型中引用他。如此就确保了该栏具有相同的属性,起码在刚开始时是相同的,不管他展现与否。这一点与站点内容类型很相似,我们在网站层定义网站栏,独立于任何实际的列表或内容类型。
当我们将网站栏添加到一个列表中后,WSS会拷贝该网站栏到列表内,成为一个列表栏(list column)。然后,我们就可以对该列表栏进行修改;这些修改仅仅作用于该列表栏。
我们也可以直接在列表中创建自己的列表栏。无论是哪种列表栏,都只能用于添加他们的列表;他们无法被添加到多个列表中。
在内容类型里,我们可以引用网站和列表栏。
注意:
在WSS对象模型以及Collaborative Application Markup Languagge(CAML)
中,栏通常被叫做字段(field)。
栏属性
我们可以为栏指定下列属性:
Name 栏的名称必须在创建他的范围内唯一。
Data Type 我们可以选择WSS支持的任何数据类型;比如,单行或多行文本,数字,货币,日期时间或计算值等等。
注意:
如果我们选择查阅项数据类型,该网站栏将作用于创建他的网站上的一个列表。我们可以在该网站的任何列表中选择他。如果我们选择计算值数据类型,WSS不会在创建时对栏的公式进行任何验证。当我们将该栏添加到列表中时,无论是直接添加或通过内容类型添加,只要包含该栏,WSS将会在首次创建该栏的列表上验证该栏。
Detailed optional settings 我们可以指定任何与数据类型相关的可选设置。
Column group to which this column belongs 栏组是用户定义的分组,用于帮助我们将栏组织到逻辑分类中。便于管理和使用。
栏的范围
网站栏与网站内容类型相似,具有作用范围。当我们在网站中创建一个网站栏后,该网站栏同时对于所有子网站可用,因此可以在其中的列表中被引用。
同样与内容类型类似,网站栏对于创建该栏的网站下的所有子网站都有效。
在网站级,网站栏的集合包含了该网站中每个网站栏的定义,无论其是否被列表或内容类型所引用。
添加网站栏到列表
我们可以添加一个网站栏到列表。当进行该操作时,WSS会拷贝该网站栏到列表中,产生一个列表栏。然后我们可以对该列表栏的属性进行修改。然而,当我们添加网站栏到内容类型,WSS仅仅会在内容类型里包括一个该网站栏的引用,而不是整个网站栏的定义。正因如此,我们在内容类型中仅能对该栏的部分属性进行修改,如栏的显示名称,XML 升级和降级(promotion and demotion)属性,以及该字段是必需,可选或隐藏。
我们也可以像在WSS 2.0里一样直接在列表中创建栏。我们可以创建先创建好网站栏,稍后再将其添加到站点内容类型或列表中。也可以在列表中创建栏,然后将其添加到该列表的内容类型中。
注意:
如果要创建或管理网站栏,您必须至少是网站设计者(Web Designer)。特别要注意,您必须要有栏所在网站的管理列表(Manage Lists)以及添加和定制页面(Add and Customize Pages)权限。如果要添加栏到列表,您必须要有该列表管理员(List Administrator)的权利。
在内容类型中引用栏
我们可以在内容类型中引用网站或列表栏。当我们在内容类型中引用某个栏时,WSS会在内容类型里添加该栏的一个引用。这个引用包含了该栏的ID。当我们将内容类型添加到某列表时,该内容类型所引用的栏也被添加到列表中(如果之前没有添加过),成为列表栏。
我们可以在网站内容类型中引用网站栏。该网站栏必须在内容类型的范围内。也就是说,该网站栏必须定义在与网站内容类型相同的网站上,或其父网站上。
对于列表内容类型 ,我们可以引用网站栏,与引用该列表中定义的任何其他列表栏的方式相同。
在内容类型中栏的引用,我们可以覆盖栏属性的一个子集,比如:
- 显示名称
- XML升级和降级属性
- 自动是否可选,必填或隐藏
不管在什么情况下,创建在网站级的就是网站栏,创建在列表级的就是列表栏。
删除栏
如果网站集中的列表包含了某个网站栏,则我们将无法删除该网站栏。
如果我们从列表中删除某栏,该栏将同时从列表的所有内容类型中被删除。
当我们删除栏时,所有与该栏相关的数据同样会被删除。