c# - 在特定位置向内容类型添加字段

标签 c# .net sharepoint

下面的代码运行完美,但是我需要新字段位于第 5 个位置,而不是在表单的末尾。

知道怎么做吗?

private void UpdateDossierContentType(SPWeb parentWeb)
{
    SPList productList = parentWeb.Site.RootWeb.Lists["Product"];
    SPFieldLookup lookup = CreateLookupField("ProductNameLookup", "CustomGroup",
            false, false, parentWeb.Site.RootWeb,
            parentWeb.Site.RootWeb.Lists["Product"],
           productList.Fields["Product Name"].InternalName);
   LinkFieldToContentType(parentWeb.Site.RootWeb, "Dossier", (SPField)lookup);

    //SPContentType dossierCT = productList.ContentTypes["Dossier"];
    //dossierCT.DeleteFieldRefFromContentType(parentWeb.Fields["Product"]);
    //dossierCT.Update();
}

public static void LinkFieldToContentType(SPWeb web, string contentType, SPField field)
{
    SPContentType ct = web.ContentTypes[contentType];
    ct.FieldLinks.Add(new SPFieldLink(field));
    ct.Update(true);
}

public static SPFieldLookup CreateLookupField(string fieldName, string group, bool required, bool allowMultipleValues, SPWeb w, SPList lookupList, string lookupField)
{
    w.Fields.AddLookup(fieldName, lookupList.ID, lookupList.ParentWeb.Site.RootWeb.ID, required);
    SPFieldLookup lookup = (SPFieldLookup)w.Fields[fieldName];
    lookup.AllowMultipleValues = allowMultipleValues;
    lookup.LookupField = lookupField;
    lookup.Group = group;
    lookup.Update(true);
    return lookup;
}

最佳答案

使用 ct.FieldLinks.Reorder(stringArrayOfInternalFieldNames) 参见 MSDN SPFieldLinkCollection.Reorder

关于c# - 在特定位置向内容类型添加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720901/

相关文章:

c# - 在两个碰撞器接触的每一帧上运行代码

c# - 根 Android shell 使用 Runtime().Exec ("command"卡在 ReadLine() 上)

c# - 使用 C# 程序区分两个内容相同但格式不同的文本文件

c# - EF 4.1 引用完整性错误

c# - 使用 XML 文件

c# - C#获取属性的时候需要加锁吗

.net - 异常处理中的选项与异常

sharepoint - Access 2013 和 Sharepoint 2013 Web 集成

asp.net - SharePoint 文件大小限制

SharePoint API - 任何文档上传的回调