使用以下PS代码创建列:
$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" />
我需要名称属性“MyField”,而不是“My_x0020_Field”。有可能吗?
答案 0 :(得分:1)
确实,这是一个恼人的问题。
您将在UI中找到相同的行为。事实上,即使您手动定义“名称”,SharePoint也会使用“DisplayName”定义“名称”。
我建议更改“MyField”的DisplayName。然后将列添加到列表后,更改“我的字段”的displayName。它并不性感,但却很有效。
以下是代码:
$field= demoList.Fields.GetFieldByInternalName("MyField");
$field.Title = "My Field";
$field.PushChangesToLists = $true;
$field.Update(true);
$list.Update();
编辑代码:)
希望这有帮助。