2012-06-04 56 views
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 ... 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顯示只是添加了「魚」的選擇,但沒有更改被保存。

我在做什麼錯了?

最良好的祝願, 阿明

回答

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();