Метод Sharepoint UpdateList: недавно созданные столбцы не отображаются - PullRequest
4 голосов
/ 05 февраля 2010

Я работал над кодом . Работает успешно. Но проблема, с которой я сталкиваюсь:

Новые столбцы не отображаются в списке (я пробовал с параметром «Требуется установка = ИСТИНА»).

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

Итак, я попытался передать нулевое значение в ndVersion.Value.

Но он все еще не работает и автоматически придает значение версии.

Можете ли вы помочь мне в этом?

Я попробовал Решение, данное Здесь .

Но это снова не сработало. (

Ответы [ 4 ]

2 голосов
/ 16 февраля 2010

На самом деле при добавлении столбца в список в браузере происходит несколько вещей:

  • Поле добавлено в список
  • Поле добавлено в список типов контента
  • Поле добавлено к виду по умолчанию

Когда вы добавляете столбец с использованием кода, вы можете изменять только список, но не тип контента (который определяет новые / редактировать формы) или представление (которое определяет представления списка)

                var field = list.Fields[fieldName];

                var ctype = list.ContentTypes[contentTypeId];
                var fieldref = new SPFieldLink(field);
                ctype.FieldLinks.Add(fieldref);
                ctype.Update();

                var view = list.Views[viewName];
                view.ViewFields.Add(field);
                view.Update();
0 голосов
/ 22 февраля 2010

Я бы использовал объектную модель, предоставленную с использованием Microsoft.Sharepoint.dll, вместо использования веб-служб.

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

Есть 2 способа программно добавить данные типа контента в список

  • via schema.xml -> Затем вы должны позволить списку наследовать от вашего типа контента, но у вас все еще есть список всех полей, которые вы хотите использовать из вашего типа контента.
  • через код -> Добавьте свое поле к типу контента, но затем вам нужно снова добавить тип контента в список, чтобы убедиться, что все поля заполнены в списке
0 голосов
/ 17 февраля 2010
0 голосов
/ 10 февраля 2010

Попробуйте установить для свойства ReadOnly значение "FALSE"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...