sharepoint 2010 创建内容类型1

在 SharePoint 2010 中创建自定义内容类型

SharePoint 2010
 
此主题尚未评级 - 评价此主题
 

SharePoint 快速入门横幅

SharePoint 2010 中的 Web 开发入门:了解如何在 SharePoint 2010 中创建自定义内容类型。

适用范围: Microsoft SharePoint Foundation 2010 | Microsoft SharePoint Server 2010 | Microsoft Visual Studio 2010
发布时间:2010 年 4 月
供稿人: Frank Rice(该链接可能指向英文页面),Microsoft Corporation

在该练习中,您将创建自定义内容类型。然后将两个字段添加到内容类型:新文本字段和网站中已存在的字段。若要完成此任务,您必须执行以下操作:

创建 SharePoint 2010 项目

在该任务中,您将在 Microsoft Visual Studio 2010 中创建空白 SharePoint 2010 项目。

创建 SharePoint 项目

  1. 若要启动 Visual Studio 2010,请依次单击“开始”菜单、“所有程序”、“Microsoft Visual Studio 2010”和“Microsoft Visual Studio 2010”。

  2. 在“文件”菜单上,指向“新建”,然后单击“项目”。

  3. 在“新建项目”对话框窗口中的“已安装的模板”部分,依次单击“Visual C#”、“SharePoint”和“2010”。

  4. 从项目项中选择“空白 SharePoint 项目”。

  5. 在“名称”框中,键入 CreateContentType,然后单击“确定”。

  6. 在 SharePoint 自定义向导中,键入要用于本练习的本地网站(例如 http://localhost/SampleWebSite)。

  7. 对于信任级别,请选择“部署为场解决方案”,然后单击“完成”。

创建内容类型

在该任务中,您将以功能形式创建内容类型,并添加事件接收器。

创建内容类型

  1. 在解决方案资源管理器中,右键单击“功能”文件夹,然后单击“添加功能”。

  2. 右键单击“Feature1”,然后单击“添加事件接收器”。Visual Studio 会将功能事件接收器添加到 Feature1。

  3. 右键单击“Feature1.EventReceiver.cs”,然后单击“查看代码”。

  4. Feature1EventReceiver 类中,取消注释 FeatureActivated 方法。

  5. FeatureActivated 方法中插入以下代码。

    using (SPWeb spWeb = properties.Feature.Parent as SPWeb)
    {
        SPContentType newAnnouncement = spWeb
            .ContentTypes
            .Cast<SPContentType>()
            .FirstOrDefault(c => c.Name == "New Announcements");
        if (newAnnouncement != null)
        {
            newAnnouncement.Delete();
        }
    
        SPField newField = spWeb.Fields
            .Cast<SPField>()
            .FirstOrDefault(f => f.StaticName == "Team Project");
        if (newField != null)
        {
            newField.Delete();
        }
    
        SPContentType myContentType = 
            new SPContentType(spWeb.ContentTypes["Announcement"], 
                spWeb.ContentTypes, "New Announcements");
        myContentType.Group = "Custom Content Types";
    
        spWeb.Fields.Add("Team Project", SPFieldType.Text, true);
        SPFieldLink projFeldLink = new SPFieldLink(spWeb.Fields["Team Project"]);
        myContentType.FieldLinks.Add(projFeldLink);
    
        SPFieldLink companyFieldLink = new SPFieldLink(spWeb.Fields["Company"]);
        myContentType.FieldLinks.Add(companyFieldLink);
    
        spWeb.ContentTypes.Add(myContentType);
        myContentType.Update();
    }
    

    FeatureActivated 方法在启动 Feature1 时运行。此代码可用于执行以下操作:

    • 删除内容类型 New Announcements 和字段 Team Project(如果存在)。

    • 根据 New Announcements 内容类型创建父内容类型 Announcement

    • 创建一个文本字段(标题为 团队项目),然后将其添加到该内容类型。

    • 将标题为 Company 的现有字段添加到该内容类型。

  6. 取消注释 FeatureDeactivating 方法。

  7. FeatureDeactivating 方法中插入以下代码。

    using (SPWeb spWeb = properties.Feature.Parent as SPWeb)
    {
        SPContentType myContentType = spWeb.ContentTypes["New Announcements"];
        spWeb.ContentTypes.Delete(myContentType.Id);
        spWeb.Fields["Team Project"].Delete();
    }
    

    FeatureDeactivating 方法在停用 Feature1 时运行。此代码可用于执行以下操作:

    • 删除内容类型 New Announcements

    • 删除文本字段 Team Project

  8. 在解决方案资源管理器中,右键单击“CreateContentType”,然后单击“部署”。

验证项目运行是否正常

在该任务中,您将验证内容类型和两个字段是否可用。

测试项目

  1. 启动 Internet Explorer,并浏览到之前指定的网站。

  2. 在屏幕的左上部,单击“网站操作”,然后单击“网站设置”。

  3. 在“库”下,单击“网站列”。

  4. 在“显示用户组”选项中,单击“自定义列”。

    您将看到新字段 Team Project



    图 1.“团队项目”字段

    “团队项目”字段
  5. 单击“网站操作”,然后单击“网站设置”。

  6. 在“库”下,单击“网站内容类型”。

  7. 从“显示用户组”选项中选择“自定义内容类型”。

    您将看到新内容类型 New Announcements



原文地址:https://www.cnblogs.com/TNSSTAR/p/2923928.html