3

これが私のセットアップです:

このフィールドを含むリストがあります(vs2010から作成):

ID="{854D15F6-C70F-4C79-AB59-40C8786EF825}"
 Name="fooSelector"
 Type="Choice"
 Sealed="TRUE"
 Required="TRUE"
 DisplayName="Fruits">
  <CHOICES>
   <CHOICE>Apple</CHOICE>
   <CHOICE>Cherry</CHOICE>
   <CHOICE>Both</CHOICE>
  </CHOICES>
</Field>

このフィールドにもっと選択肢を追加したいです。powershell を使用して、Web で見つかった 2 つのサンプルを試してみました... A)

$spWeb = Get-SPWeb http://intranet/foo

$spList = $spWeb.Lists["Dynamics-Nav List"]
$choices =  New-Object System.Collections.Specialized.StringCollection
 "Fish",
 "Melon"  | ForEach-Object { $choices.Add($_) | Out-Null }

$spList.Fields.Add("Fruits",
 [Microsoft.SharePoint.SPFieldType]::Choice,
 $false,
 $false,
 $choices) 
$spList.Fields[“Fruits”].Update()

B)

$w = Get-SPWeb http://intranet/foo
$l = $w.Lists["Dynamics-Nav List"]
$uf = $l.Fields["Fruits"]
$uf.Choices
$uf.Choices.Add("Fish");
$uf.update()
$l.update();

どちらもエラーなしで正常に実行され、その後 $uf.Choices には追加されたばかりの「魚」の選択肢が表示されますが、どちらの変更も保存されません。

私は何を間違っていますか?

おめでとう、アルミン

4

2 に答える 2

1

パワーシェルで試す

$suryafield = "<Field Type='Choice' DisplayName='Surya' Required='TRUE' Format='Dropdown' Group='Custom Columns'
      FillInChoice='FALSE' StaticName='Surya' Name='Surya'>
            <CHOICES>
                <CHOICE>YES</CHOICE>
                <CHOICE>NO</CHOICE>
            </CHOICES>
           </Field>"
      $web.Fields.AddFieldAsXml($suryafield)

詳細については、この投稿を参照して ください http://suryapulipati.blogspot.com/2013/08/create-sharepoint-choice-field-site.html

于 2013-08-16T19:07:50.657 に答える
0

コードビハインドからこのコードを試してください:

string newField = string.Concat("<Field Type='Choice' DisplayName='",
                    "FieldName", "' Name='", "FieldName", "' ",
                    "Format='Dropdown' Required='TRUE' Indexed='TRUE'><CHOICES>",
                    "<CHOICE>1</CHOICE>",
                    "<CHOICE>2</CHOICE>",
                    "<CHOICE>3</CHOICE>",
                    "</CHOICES><Default>1</Default>",
                    "<Description> Status.",
                    "</Description></Field>");

    list.Fields.AddFieldAsXml(newField, true,SPAddFieldOptions.AddFieldToDefaultView);
    Web.Update();
于 2012-06-07T09:01:23.880 に答える