以编程方式设置SpField项的组

时间:2017-01-18 08:32:49

标签: c# sharepoint

我正在创建我的ContentTypes,之后我尝试创建我的字段。

我搜索了几个小时关于如何获得群组,我可以在墙上撞到我的头,你可以放置田地(查看图片,看看我所指的是什么)< / p>

enter image description here

有人可以解释我如何从我的照片中获取这些群组的列表吗?

var web = _Ctx.Web;
_Ctx.Load(web, w => w.ContentTypes, w => w.Fields);
_Ctx.ExecuteQuery();

foreach (lavaPOINT_Page page in new PageAndFieldData().Pages)
{
    if (!web.ContentTypes.ToList().Exists(i => i.Id.ToString() == page.ID))
    {
        var spbt = web.ContentTypes.Add(new ContentTypeCreationInformation()
        {
            Name = page.Name,
            Id = page.ID,
            Group = page.Group,
            Description = page.Group
        });
        _Ctx.Load(spbt, f => f, f => f.Fields.Include(i => i.InternalName));
        _Ctx.ExecuteQuery();
    }
}

var fields = web.Fields;
var Groups =  ? // how do i get the Groups *??

foreach (var field in new PageAndFieldData().Fields)
{
    var teaser = web.Fields.FirstOrDefault(i => i.InternalName == field.field_name); // if dont exist = create

    if (teaser == null)
    {
        var fieldXml = "<Field Type=\"Note\" DisplayName=\"Teaser\" Required=\"FALSE\" EnforceUniqueValues=\"FALSE\" Indexed=\"FALSE\" NumLines=\"6\" RichText=\"FALSE\" Sortable=\"FALSE\" Group=\"Fields\" ID=\"{fdfba8f7-4521-4db4-b6c2-8ab88e065834}\" SourceID=\"{5119e221-4abe-4200-8d82-910db701336a}\" StaticName=\"NewsPageTeaser\" Name=\"NewsPageTeaser\" RestrictedMode=\"TRUE\" RichTextMode=\"Compatible\" IsolateStyles=\"FALSE\" AppendOnly=\"FALSE\" UnlimitedLengthInDocumentLibrary=\"FALSE\"></Field>";
        var spField = web.Fields.AddFieldAsXml(fieldXml, false, AddFieldOptions.DefaultValue);

        //_Ctx.Load(spField);
        //_Ctx.ExecuteQuery();
    }

}

1 个答案:

答案 0 :(得分:0)

我找到了获得所有群组的方法。但有点确定它不是最好的。

var groups = fields.ToList().Select(i => i.Group).Distinct();