CSOM创建Content Type并指定GUID

SharePoint 2013 Client Object Mode在创建Content Type时有一个限制,不能给Content Type指定一个GUID,只能由系统随机生成。而在用farm solution部署时,则可以在xml中指定好Content Type的GUID,或者用服务器端对象模型来指定GUID。

SharePoint 2013 SP1发布之后,这个问题就迎刃而解了。在新的CSOM对象模型中,可以在创建Content Type时指定GUID。在o365上申请一个免费的开发网站,然后编写APP就可以进行测试了。

SP2013 SP1 CSOM SDK的下载地址:

http://www.microsoft.com/en-us/download/details.aspx?id=35585

当SP的版本升级到SP1之后,或者在o365网站上,我们就可以为Content Type指定唯一的GUID了。代码如下:

private string CreateContentType(ClientContext clientContext, Web web)

{

string ContentTypeID = "0x010048017A06020440BE8498BB193B944C84";            ContentTypeCollection contentTypeColl = clientContext.Web.ContentTypes;

ContentTypeCreationInformation contentTypeCreation = new ContentTypeCreationInformation();

contentTypeCreation.Name = "ContentType Name";

contentTypeCreation.Description = "Custom Content Type created by CSOM.";

contentTypeCreation.Group = "Custom";

contentTypeCreation.Id = ContentTypeID;

//Add the new content type to the collection

ContentType ct = contentTypeColl.Add(contentTypeCreation);

clientContext.Load(ct);

clientContext.ExecuteQuery();

return ContentTypeID;

}

注意:在创建Content Type时,不能在代码中指定它的父Content Type类型。例如下面的代码是不能正常执行的。

contentTypeCreation. ParentContentType =contentTypes.GetById(“0x0100”);

正确的做法是在指定的GUID中直接包含其父类型的ID,如下面所示:

string ContentTypeID = "0x010048017A06020440BE8498BB193B944C84";

CSOM创建Content Type并指定GUID

时间: 2024-11-22 22:38:31

CSOM创建Content Type并指定GUID的相关文章

转载 SharePoint【Site Definition 系列】– 创建Content Type

转载原地址:  http://www.cnblogs.com/wsdj-ITtech/archive/2012/09/01/2470274.html Sharepoint本身就是一个丰富的大容器,里面存储的所有信息我们可以称其为“内容(Content)”,为了便于管理这些Conent,按照人类的正常逻辑就必然想到的是对此进行“分类”.分类所涉及到的层面又必然包括: 1.分类的标准或特征描述{即:类型属性(或:与该类型项目相关联的属性)}. 2.对应类的关联动作(即:工作流,行为以及其他设置)  

InfoPath与SharePoint之(五)发布InfoPath表单到Content Type

不管是在List里定制化表单,还是发布表单到Library,都有一个缺陷,就是不能被其他的List/Library重复使用. 因此SharePoint提供了一个功能,可以把表单发布成Content Type,这样其他的List/Library就可以引用它了. 打开之前设计的一个表单: 选择发布到SharePoint Server: 输入一个Site 的URL: 在类型这里,选择Content Type: 选择创建一个新的Content Type.如果以前发布过这个Content Type,现在要

the request doesn't contain a multipart/form-data or multipart/form-data stream, content type header

the request doesn't contain a multipart/form-data or multipart/form-data stream, content type header 一,HTTP上传的基本知识 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型.下边是说明: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对.这是标准的编码格式. mult

SharePoint Development - Custom Content Type using Visual Studio 2010 based SharePoint 2010

本文所述均来自之前实际的项目模块 首先再论述一下SharePoint ContentType内容类型 SharePoint的列表和文档库可以储存不同类型的内容就叫做内容类型,比如文档库的文档,调查列表的调查等,都称作是内容类型.内容类型在网站范围内是可用的,不同的内容类型具有不同的内容和设置(如策略,关联的工作流等). 通俗来讲,内容类型可以是文档,可以是文件夹,也可以是字段的集合.创建好后的内容类型可以与列表关联,体现在列表的新建项目上.没有凭空而来的内容类型,任何自定义内容类型都是基于现有类

sqlserver 创建用户只能访问指定视图

use crm --当前数据库创建角色 exec sp_addrole 'rapp' --分配视图权限 GRANT SELECT  ON veiw TO [角色] --指定视图列表 GRANT SELECT ON  v_city TO rapp GRANT SELECT ON  v_lp TO rapp GRANT SELECT ON  v_qy TO rapp go --添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名' exec sp_a

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported

踩到了一个神坑,明明@RequestMapping注解并没有设置consumes,即没有限定请求参数的类型.却出现文章底部的错误,原因竟然是同一个model下注解了两个@JsonBackReference. @Entity // 用户 public class User extends IDomain { @Column(columnDefinition = "varchar(255) comment '[电话]'") private String phone; @Column(col

Spring MVC 前后台传递json格式数据 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

报错如下: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 解决方案: 引入如下包: 问题既解决. Spring MVC 前后台传递json格式数据 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

how to set default content type in document set in Sharepoint

I had encounter a issue when set default content type in document set, had to work around it Create a custom document set in library, besides I want the document set only contains a content type I want to use, hence add a custom content type in the d

InfoPath与SharePoint之(六)在表单库里引用InfoPath Form Content Type

在表单库里引用InfoPath Form Content Type 在上一篇,介绍了如何把InfoPath Form类型的Content Type发布到SiteCollection,发布完之后,就可以在已经存在的表单库里引用了. 打开一个已经存在的表单库,点击Ribbon上的Library Settings: 在Settings页面,点击Advanced Settings: 默认情况下,添加Content Type功能是关闭的,在这里开启: 再回到Library Settings页面,就可以添加