2011-09-20 42 views
1

我正在使用以下代碼將項目添加到應用程序頂層的列表中,但未添加任何內容,有人知道原因嗎?有什麼遺漏嗎?SPListItem未添加到SPList

它不會返回任何錯誤,只是不添加項目和列表保持空白。

該代碼位於要部署列表實例的功能的FeatureActivated方法中。

using (SPWeb web = site.OpenWeb()) 
       { 
        web.AllowUnsafeUpdates = true; 
        SPList icons = web.GetList(path) 

        SPSecurity.RunWithElevatedPrivileges(delegate() 
        { 
        SPListItem icon = icons.Items.Add(); 

        icon[SPBuiltInFieldId.Title] = "title"; 
        icon[new Guid("d3429cc9-adc4-439b-84a8-5679070f84cb")] = "class1"; 

        icons.Update(); 
        } 

回答

4

你必須調用圖標對象,而不是圖標的更新()方法。

+0

就是這樣!我認爲清單必須更新,但它是該項目。謝謝! –

+1

不客氣:-)你只更新列表對象,如果你更改列表本身。 icons.Items.Add()實際上並沒有將項目添加到Items集合,它只返回一個項目(包含列表中存在的所有字段) – int32

0

我發現也有成功的2種方式將項目添加到列表:

  1. 像安德烈亞斯·沙爾夫說:

SPListItem item = list.Items.Add(); 
item["Title"] = "some title"; 
item.Update(); 

  1. 其他方式使用AddItem ()而不是來自項目集合的Add()

SPListItem item = list.AddItem(); 
item["Title"] = "some title"; // Add item's field values 
item.Update(); //also the item is updated, not the list