2016-02-18 2 views
0

Создание столбца с помощью следующего кода PS:Создать список столбец с именем, отличным от DisplayName

$fieldXMLString = '<Field Type="Text" 
Name="MyField" 
DisplayName="My Field" 
StaticName="MyField" 
InternalName="MyField"></Field>' 
$list.Fields.AddFieldAsXml($fieldXMLString,$true,[Microsoft.SharePoint.SPAddFieldOptions]::AddFieldToDefaultView) 

Результат:

SchemaXmlWithResourceTokens : <Field Type="Text" Name="My_x0020_Field" DisplayName="My Field" StaticName="MyField" InternalName="MyField" ID="{4d5e1282-6c52-450b-9f5b-2a37126a9713}" 
          SourceID="{9b93722f-ce19-4c0b-948b-ba2a6c197539}" ColName="nvarchar11" RowOrdinal="0" /> 

мне нужно Name свойство быть "MyField", не «My_x0020_Field». Является ли это возможным?

ответ

1

Действительно, это раздражающая проблема.

Вы найдете то же поведение с пользовательским интерфейсом. Infact, SharePoint определяют «имя» с помощью «DisplayName», даже если вы вручную определяете «имя».

Предлагаю изменить DisplayName для «MyField». Затем, добавив столбец в список, измените displayName для «My Field». Это не сексуально, но это работа.

Вот код:

$field= demoList.Fields.GetFieldByInternalName("MyField"); 
$field.Title = "My Field"; 
$field.PushChangesToLists = $true; 
$field.Update(true);   
$list.Update(); 

Изменить код :)

Надеется, что это помогает.

+0

Спасибо Thibault! Отметьте как ответ, так как я не нашел лучшего решения. Надеюсь, что есть один ... Первая строка вашего кода не PowerShell BTW. – Anton

Смежные вопросы