Sharepoint Guidfield - как отобразить его во внешнем интерфейсе и установить его значение в коде? - PullRequest
4 голосов
/ 11 марта 2011

В моей пользовательской форме я хочу отобразить пользовательское поле Guid.

Я создал поле обычным способом с помощью функции:

<Field ID="88813c02-799b-4fc8-8ed8-72fe668e257c" Type="Guid"
                                                 Name="myGuid"
                                                 StaticName="myGuid"
                                                 DisplayName="My Guid" />

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

<SharePoint:GuidField runat="server" ID="myGuidField" FieldName="myGuid" />
<SharePoint:TextField runat="server" ID="myTitle" FieldName="Title" />

Поле Guid не отображается в обычной форме New / Edit - оно просто пустое.В коде пользовательской формы я могу сделать следующее:

myTitle.Value = "Some Title Value"; 
string testValue = myTitle.Value; //-->"Some Title Value"

, но при попытке установить значение поля Guid - это как-то не получается:

string anotherValue = myGuidField.Value; //--> null
Guid myGuid = new Guid("7f824c3f-4049-4034-a231-85291fce2680");
myGuidField.Value = myGuid;
string anotherValue = myGuidField.Value; //--> still null
//but myGuidField is seen as a "Microsoft.Sharepoint.WebControls.GuidField"

Так или иначе, я просто не могу программно установить значение Guid и не могу отображать только Guid.

Два вопроса:

  1. Как отобразить GuidField (GUID, который он содержит) на форме?
  2. Как установить значение GuidField

1 Ответ

8 голосов
/ 11 марта 2011

GuidField не переопределяет свойство Значение BaseFieldControl, и это свойство всегда возвращает ноль и ничего не установлено для этого элемента управления поля.Реализация по умолчанию GuidField не имеет никаких DisplayTemplates, и если вы поместите этот элемент управления поля в пользовательскую или даже стандартную форму - поле не будет отображать HTML-элементы для значения настройки.Значение поля вы должны установить вручную.Чтобы установить пользовательское значение, используйте ItemFieldValue:

myGuidField.ItemFieldValue = new Guid("7f824c3f-4049-4034-a231-85291fce2680");

или просто

item["myGuid"] =  new Guid("7f824c3f-4049-4034-a231-85291fce2680"); 

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

...