2012-03-22 15 views
0

私は2つのリストを持っています。私は最初のリストに新しいアイテムを追加しながら2番目のリストを更新したいと思っていました。 次のコードを使用していますが、何も起こりません。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(); 
       } 
      } 
     } 
    } 

私は現在、最初のリストに追加した2番目のリストに新しいアイテムをコピーしたかったのです。 助けがよかったです、ありがとうございました。

答えて

6

あなたはこれを試すことができますよりも、リストアイテムのタイトルにしたい場合は:

その良い習慣は、getサイトやWebのために、あなたのコード内でプロパティを使用する

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; 
} 

1のものは、あなたがしなければならないということですitemaddingの代わりにitemaddedを使用してください。現在のIDでlistitemを簡単に取得できます。

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