2012-03-22 260 views
0

我有兩個列表,我想更新第二個列表,同時在第一個列表中添加一個新項目。 我使用下面的代碼,但沒有任何反應。Sharepoint 2010事件接收器項目在另一個列表中添加和更新

 public override void ItemAdding(SPItemEventProperties properties) 
     { 
     base.ItemAdding(properties); 
     string MenuList = properties.ListTitle; 

     if (MenuList == "Menu") 
     { 
      string mySiteUrl = "http://rizwan-pc"; 
      using (SPSite mysiteCollection = new SPSite(mySiteUrl)) 
      { 
       using (SPWeb mySite = mysiteCollection.RootWeb) 
       { 
        string title = properties.ListItem["Title"].ToString(); 

        SPList Menu_lookUp = mySite.Lists["Menu LookUp"]; 
        SPListItem newListItem = Menu_lookUp.Items.Add(); 
        newListItem["Applicable"] = title; 
        newListItem.Update(); 
       } 
      } 
     } 
    } 

我想新的項目中,我目前在第一個列表添加第二個列表複製。 任何幫助將是偉大的,在此先感謝。

回答

6

,如果你想將列表項的標題比你可以試試這個:

其良好的習慣,在代碼中使用屬性獲取網站或網頁:

using(SPWeb objweb = properties.openweb()) 
{ 
    string title = convert.ToString(properties.AfterProperties["Title"]); 
    objweb.AllowUnsafeUpdates = true; 
    SPList Menu_lookUp = mySite.Lists["Menu LookUp"]; 
    SPListItem newListItem = Menu_lookUp.Items.Add(); 
    newListItem["Applicable"] = title; 
    newListItem.Update(); 
    objweb.AllowUnsafeUpdates = false; 
} 

一個事情是,你應該使用itemadded而不是itemadding。它很容易通過當前的id獲得listitem。

SPList objlist = objweb.Lists[properties.ListTitle]; 
    SPListItem liCaseID = objlist.Items.GetItemById(properties.ListItemId); 
    //your excute your code. 
相關問題