Я использовал код из вашего ответа, за исключением того, что я программно исследовал типы контента и поля для списка, который я хотел изменить.
// Шаг 1 (необязательно): перечислите типы контента иполя для вашего списка, чтобы увидеть, что находится в списке
SPList list = web.Lists[strListName];
string strRet="";
foreach (SPContentType spct in list.ContentTypes)
{
strRet += "<strong>Content Type: </strong>" + spct.Name + ", <strong>Fields</strong>: <br />";
foreach (SPField field in spct.Fields)
{
if (strFieldInfo != "")
{
strFieldInfo += ", ";
}
strFieldInfo += "\"" + field.StaticName + "\"";
}
strRet += strFieldInfo + "<br />-----<br />";
}
//Output the results
lblOutput.Text = strRet;
Теперь у вас будет представление о том, сколько типов контента в вашем списке и какие поля в списке.
По умолчанию, если управление типами контента не включено, у вас будет один тип контента со всеми полями.
Пример вывода из приведенного выше кода:
Тип контента: Событие, Поля :
"ContentType", "Title", "Location", "EventDate", "EndDate", "Description", "fAllDayEvent", "fRecurrence",«WorkspaceLink», «EventType», «UID», «RecurrenceID», «EventCanceled», «Duration», «RecurrenceData», «TimeZone», «XMLTZone», «MasterSeriesItemID», «Workspace», «Course», «CourseLocation"
Следующим шагом 2 является изменение порядка типа содержимого.Вы можете вырезать и вставить из выходных данных шага 1, изменить порядок и добавить «{» и «};»вокруг него, чтобы создать массив строк для нужного вам порядка.
if (list.ContentTypes.Count > 0)
{
SPContentType ct = list.ContentTypes[0]; //Specify the content type here, if you have more than one content type in your list.
string[] fieldnames = { "ContentType", "Title", "Course", "CourseLocation", "EventDate", "EndDate", "Description", "fAllDayEvent", "fRecurrence", "WorkspaceLink", "EventType", "UID", "RecurrenceID", "EventCanceled", "Duration", "RecurrenceData", "TimeZone", "XMLTZone", "MasterSeriesItemID", "Workspace", "Location"};
ct.FieldLinks.Reorder(fieldnames);
web.AllowUnsafeUpdates = true;
ct.Update(true);
web.AllowUnsafeUpdates = false;
}