使用对象模型来创建内容类型

简介:

一:首先定义一个函数来创建内容类型,代码如下:

private SPContentType CreateContentType(SPWeb web, string typeName,string baseTypeName,
string description) { SPContentType contentType = null; try { SPContentType baseType; if (string.IsNullOrEmpty(baseTypeName)) { baseType = web.AvailableContentTypes[SPContentTypeId.Empty]; } else { baseType = web.AvailableContentTypes[baseTypeName]; } contentType = new SPContentType(baseType, web.ContentTypes, typeName); contentType.Description = description; web.ContentTypes.Add(contentType); } catch { } return contentType; }

二:定义两个重载的函数,在函数中先创建网站的field,然后再往内容类型中添加FieldLink

 private SPField AddField(SPContentType contentType, string fieldDisplayName, 
SPFieldType fieldType, bool bRequired) { SPField field = null; try { using (SPWeb web = contentType.ParentWeb) { web.Fields.Add(fieldDisplayName, fieldType, bRequired); field = web.Fields[fieldDisplayName]; contentType.FieldLinks.Add(new SPFieldLink(field)); } } catch { } return field; } private SPField AddField(SPContentType contentType, string fieldDisplayName, SPFieldType fieldType, bool bRequired, bool bCompactName, StringCollection choices) { SPField field = null; try { using (SPWeb web = contentType.ParentWeb) { web.Fields.Add(fieldDisplayName, fieldType, bRequired, bCompactName, choices); field = web.Fields[fieldDisplayName]; // add a field link to the content type contentType.FieldLinks.Add(new SPFieldLink(field)); } } catch { } return field; }

三:下面函数完成向指定网站中添加内容类型的功能

 private void AddContentType(SPWeb web)
{
   if (web != null)
   {
       web.AllowUnsafeUpdates = true;
       SPContentType contentType = CreateContentType(web, "OnlineEvent11", "Event", "OnlineEvent11");
       if (contentType != null)
       {
           StringCollection statusColl = new StringCollection();
           statusColl.Add("Approved");
           statusColl.Add("Rejected");
           AddField(contentType, "Event Status", SPFieldType.Choice,true, false, statusColl);

           AddField(contentType, "Number Of Attendees",SPFieldType.Number, false);

           StringCollection eventType = new StringCollection();
           eventType.Add("Business/Career");
           eventType.Add("Classes & Lectures");
           eventType.Add("Dinners/Galas");
           eventType.Add("Fundraiser");
           eventType.Add("Misc");
           eventType.Add("Seminars");
eventType.Add("Support Groups"); AddField(contentType, "Type Of Event", SPFieldType.Choice,true, false, eventType);
StringCollection audienceType = new StringCollection(); audienceType.Add("Adults"); audienceType.Add("Everyones' Invited"); audienceType.Add("Families"); audienceType.Add("Kids"); audienceType.Add("Men"); audienceType.Add("Seniors"); audienceType.Add("Singles"); audienceType.Add("Teens"); audienceType.Add("Women"); AddField(contentType, "Audience Type", SPFieldType.MultiChoice, true, false, audienceType); contentType.Update(true); } } }

四:.如下代码在feature被激活的时候执行

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
   if (properties != null)
   {
      SPWeb web = properties.Feature.Parent as SPWeb;
      if (web != null)
      {
          AddContentType(web);
      }
   }
 }

五:由于SPFeatureReceiver是抽象类,所以下面方法也要被重写

public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{ }
public override void FeatureInstalled(SPFeatureReceiverProperties properties)
{ }
public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
{ }

六:部署成功后,如下图:

CreateContenttypeByAPI1


本文转自生鱼片博客园博客,原文链接:http://www.cnblogs.com/carysun/archive/2008/07/03/CreateContenttypeByAPI.html,如需转载请自行联系原作者

目录
相关文章
|
27天前
|
XML 存储 JavaScript
DOM(文档对象模型):理解网页结构与内容操作的关键技术
**DOM摘要:**文档对象模型(DOM)是独立于语言的接口,用于访问和修改HTML或XML文档。HTML DOM用于HTML,XML DOM用于XML。示例展示了如何用JavaScript通过DOM获取和修改元素,如通过ID或标签名。XML DOM涉及加载XML文件或字符串,获取元素值。DOM节点包括文档、元素、文本等,通过属性(如nodeName, nodeValue)和方法(如getElementsByTagName, appendChild)操作。节点树结构允许遍历和修改文档结构。
46 2
DOM(文档对象模型):理解网页结构与内容操作的关键技术
|
10月前
|
JavaScript 前端开发 API
Element表格和表单字典转换(静态和动态)(下)
Element表格和表单字典转换(静态和动态)(下)
149 0
|
10月前
|
JavaScript Java 关系型数据库
Element表格和表单字典转换(静态和动态)(上)
Element表格和表单字典转换(静态和动态)(上)
298 0
|
JavaScript 算法
ES6 对象的扩展内容
ES6 对象的扩展内容
71 0
|
XML Java 数据格式
使用dom4j工具:设置输出两种xml格式-紧密型和美观型
今天学习使用不知名大佬的domj4 jar包以及用到的几个其他的包,来简单写一个xml
231 0
使用dom4j工具:设置输出两种xml格式-紧密型和美观型
|
存储 JavaScript 前端开发
在 JavaScript 中,我们能为原始类型添加一个属性或方法吗?
在 JavaScript 中,我们能为原始类型添加一个属性或方法吗?
179 0
|
JavaScript 前端开发
Javascript知识【BOM对象&元素内容体操作】
本文主要介绍了BOM对象中的:BOM简述和消息框以及location和history,另外还有:元素内容体的操作
Javascript知识【BOM对象&元素内容体操作】
|
XML Java 数据格式
编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据
编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据
218 0
编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据
|
JavaScript 前端开发
给JavaScript的单个对象定义属性和属性的元数据
给JavaScript的单个对象定义属性和属性的元数据
97 0