WSS3SDK之:向列表添加内容类型中的栏
当我们添加某个内容类型到列表中是,该内容类型所引用的栏将以列表栏的方式添加到列表中(如果之前没有添加过)。
下图展示了通过内容类型添加到列表中的栏。在图中,网站内容类型——Specification——有3个网站栏的引用。网站内容类型对每个添加的栏(Developer,Milestone,Status)都包含一个引用。网站栏的集合包含了该网站下所有可用的网站栏的定义。
当我们添加内容类型到列表时,WSS拷贝网站内容类型到列表中,形成一个列表内容类型,拷贝栏的模板到列表中形成列表栏。列表内容类型包含了对被拷贝到列表中的列表栏的引用,而不是站点中网站栏集合中的网站栏。因此,我们可以对这些栏进行修改,定制其在列表中的展现,而这些变更不会影响到网站栏本身或其他继承该网站栏的列表。![](/images/cnblogs_com/sunmoonfire/sitecolumn1.jpg)
下图向我们展示了一个更复杂的场景,多个内容类型添加到同一个列表中。2个网站内容类型,Memo和Spec,创建于网站集根站点。正因为他们所处的位置,使其在所有该网站集下的其他网站中都可用。一个列表管理员将这2个内容类型都加到了某个列表中,如图所示。这时,WSS会拷贝站点内容类型成列表内容类型。并检查两个列表内容类型来决定哪些栏需要添加到列表中。在本例中,Memo引用了2个栏,Author和Subject,Spec引用了3 个:Author,Test和Developer。WSS将添加需要的栏。
尽管Author在每个内容类型中都被引用了,但是只会添加一次到列表中。另外,如果Author在Spec内容类型中是必需的栏,但在Memo内容类型中是可选的,那么在列表中该栏只会在Spec内容类型的列表项上要求必填。
![](/images/cnblogs_com/sunmoonfire/sitecolumn2.jpg)
我们也可以添加已有的列表栏到列表内容类型。
下图展示了通过内容类型添加到列表中的栏。在图中,网站内容类型——Specification——有3个网站栏的引用。网站内容类型对每个添加的栏(Developer,Milestone,Status)都包含一个引用。网站栏的集合包含了该网站下所有可用的网站栏的定义。
当我们添加内容类型到列表时,WSS拷贝网站内容类型到列表中,形成一个列表内容类型,拷贝栏的模板到列表中形成列表栏。列表内容类型包含了对被拷贝到列表中的列表栏的引用,而不是站点中网站栏集合中的网站栏。因此,我们可以对这些栏进行修改,定制其在列表中的展现,而这些变更不会影响到网站栏本身或其他继承该网站栏的列表。
![](/images/cnblogs_com/sunmoonfire/sitecolumn1.jpg)
下图向我们展示了一个更复杂的场景,多个内容类型添加到同一个列表中。2个网站内容类型,Memo和Spec,创建于网站集根站点。正因为他们所处的位置,使其在所有该网站集下的其他网站中都可用。一个列表管理员将这2个内容类型都加到了某个列表中,如图所示。这时,WSS会拷贝站点内容类型成列表内容类型。并检查两个列表内容类型来决定哪些栏需要添加到列表中。在本例中,Memo引用了2个栏,Author和Subject,Spec引用了3 个:Author,Test和Developer。WSS将添加需要的栏。
尽管Author在每个内容类型中都被引用了,但是只会添加一次到列表中。另外,如果Author在Spec内容类型中是必需的栏,但在Memo内容类型中是可选的,那么在列表中该栏只会在Spec内容类型的列表项上要求必填。
![](/images/cnblogs_com/sunmoonfire/sitecolumn2.jpg)
添加列表中的栏到内容类型
如果我们直接在列表中添加栏,并且该列表包含多个内容类型,那么我们可以指定新加的栏是否被所有这些内容类型引用。如果我们将其引用到列表内容类型中,并设置该栏位必填项,那么该栏将同时在各内容类型中都变为必填。然而,我们可以在随后在特定的列表内容类型中覆盖整个必填设置。我们也可以添加已有的列表栏到列表内容类型。