Создать один раз поля в Sharepoint - PullRequest
0 голосов
/ 22 марта 2012

У меня есть ферма SharePoint 2010.

Я хочу создать пользовательский DocumentLibrary с custom ContentType.Я создаю Listdefinitions в Visual Studio.

Но я хочу использовать поля, которые я могу заполнять только после загрузки или создания нового документа, и после этого они не редактируются (но только для чтения).

Свойства ShowInNewForm и ShowInEditForm не работают для этого, потому что при загрузке документа всегда будет использоваться EditForm.

Как это организовать?

1 Ответ

0 голосов
/ 24 марта 2012

Вы можете зарегистрировать получатель события и пользовательскую форму EditForm в своем doclib.Метод ItemUpdating класса получателя событий гарантирует, что никто (инструмент или страница) не сможет изменить поля в объектной модели SP после создания элемента:

public override void ItemUpdating(SPItemEventProperties properties)
{
    // Cancel the update according to the content of AfterProperties.
    properties.Cancel = true;
    properties.ErrorMessage = "...";
}

Пользовательская EditForm форма будет отображать свойства только для чтения в HTML-элементах только для чтения, если форма открыта не для первого раза.Что ж, вам не обязательно делать это, потому что любые изменения, сделанные в форме, будут отклонены получателем события, но пользовательский опыт не будет лучше с формой.На самом деле, если вам не нужна защита от изменений SP OOM, вы можете использовать только форму;пользователи не смогут изменять поля только с помощью пользовательского интерфейса SP.

--- Ferda

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