Как изменить порядок полей / столбцов в представлении SharePoint? - PullRequest
4 голосов
/ 24 сентября 2008

Я добавляю новое поле в список и просмотр. Чтобы добавить поле в представление, я использую этот код:

view.ViewFields.Add("My New Field");

Однако это просто привязывает его к концу представления. Как добавить поле в определенный столбец или изменить порядок полей? view.ViewFields является объектом SPViewFieldCollection, который наследуется от SPBaseCollection, и нет доступных методов Insert / Reverse / Sort / RemoveAt. * ​​1004 *

Ответы [ 4 ]

3 голосов
/ 24 сентября 2008

Я обнаружил, что удаление всех элементов из списка и их чтение в порядке, который мне нравится, работает хорошо (хотя и немного радикально). Вот код, который я использую:

string[] fieldNames = new string[] { "Title", "My New Field", "Modified", "Created" };
SPViewFieldCollection viewFields = view.ViewFields;
viewFields.DeleteAll();
foreach (string fieldName in fieldNames)
{
    viewFields.Add(fieldName);
}
view.Update();
1 голос
/ 03 ноября 2015

Вы можете использовать метод по умолчанию:

    int newFieldOrderIndex = 1;
    SPViewFieldCollection viewFields = view.ViewFields;
    viewFields.MoveFieldTo(fieldName, newFieldOrderIndex);
    view.Update();

https://msdn.microsoft.com/EN-US/library/microsoft.sharepoint.spviewfieldcollection.movefieldto.aspx

0 голосов
/ 02 ноября 2017

У меня было два разных списка и похожий вид. Я хотел обновить порядок полей представления списка назначения, если пользователь изменил порядок в исходном представлении.

ViewFieldCollection srcViewFields = srcView.ViewFields;
ViewFieldCollection destViewFields = destView.ViewFields;

var srcArray = srcViewFields.ToArray<string>();
var destArray = destViewFields.ToArray<string>();

foreach (var item in destArray)
{
    destViewFields.MoveFieldTo(item, Array.IndexOf(srcArray, item));
    destView.Update();
}
0 голосов
/ 24 сентября 2008

Вы должны использовать следующий метод для изменения порядка полей

 string reorderMethod = @"<?xml version=""1.0"" encoding=""UTF-8""?> 
                          <Method ID=""0,REORDERFIELDS""> 
                          <SetList Scope=""Request"">{0}</SetList>  
                          <SetVar Name=""Cmd"">REORDERFIELDS</SetVar>  
                          <SetVar Name=""ReorderedFields"">{1}</SetVar>  
                          <SetVar Name=""owshiddenversion"">{2}</SetVar>  
                          </Method>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...