Sharepoint 2010事件接收器项目在另一个列表中添加和更新

Riz*_*wan 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();
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想复制第一个列表中我当前添加的第二个列表中的新项目.任何帮助都会很棒,在此先感谢.

Jig*_*put 6

如果你想获得listitem的标题,你可以试试这个:

它的好习惯是在代码中使用属性来获取网站或网站:

 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;
 }
Run Code Online (Sandbox Code Playgroud)

有一件事你应该用itemadded而不是itemadding.它很容易通过当前id获得listitem.

  SPList objlist = objweb.Lists[properties.ListTitle];
  SPListItem liCaseID =   objlist.Items.GetItemById(properties.ListItemId);
  //your excute your code.
Run Code Online (Sandbox Code Playgroud)