需要Sharepoint工作流中的帮助吗

需要Sharepoint工作流中的帮助吗,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我是sharepoint开发新手,手头有任务要做。我需要为以下逻辑添加几行代码 需要检查任务项的以前标题和新标题是否相同 如果没有,则查询任务列表 查找包含上一个标题的所有项目 更新他们的标题 这是我的伪代码: public override void ItemUpdating(SPItemEventProperties properties) { try { this.DisableEventFiring(); //Need to write my logic

我是sharepoint开发新手,手头有任务要做。我需要为以下逻辑添加几行代码

  • 需要检查任务项的以前标题和新标题是否相同
  • 如果没有,则查询任务列表
  • 查找包含上一个标题的所有项目
  • 更新他们的标题
  • 这是我的伪代码:

    public override void ItemUpdating(SPItemEventProperties properties)
    {
    try {
            this.DisableEventFiring();
            //Need to write my logic here
    
            base.ItemUpdating(properties);
        }
        catch (Exception ex) {
    
        }
        finally {
            this.EnableEventFiring();
        }
    }
    
    有人能指导我如何为上述逻辑编写代码吗?如果您有任何类似逻辑的示例代码,请共享。这对我会有帮助的


    提前谢谢

    此代码可能对您有所帮助。也许您需要根据自己的需要对其进行调整,但是您需要访问的属性是相同的

    public override void ItemUpdating(SPItemEventProperties properties)
    {
      //this will get your title before updating
      var oldName = properties.ListItem["Title"].ToString();
    
      //and this will get the new title
      var newName = properties.AfterProperties["Title"].ToString(); 
      if (newName != oldName)
      {
        using (var site = new SPSite("http://yoursitename"))
        using (var web = site.OpenWeb())
        {
          var list = web.Lists["Tasks"];
          var items = list.Items.OfType<SPListItem>().Where(i => (string) i["Title"] == oldName);
    
          foreach (var item in items)
          {
            item["Title"] = newName;
            item.Update();
          }
        }
      }
    base.ItemUpdating(properties);
    }
    
    公共覆盖无效项更新(SPItemEventProperties属性)
    {
    //这将在更新之前获取您的标题
    var oldName=properties.ListItem[“Title”].ToString();
    //这将得到新的标题
    var newName=properties.AfterProperties[“Title”].ToString();
    如果(新名称!=旧名称)
    {
    使用(var站点=新SPSite(“http://yoursitename"))
    使用(var web=site.OpenWeb())
    {
    var list=web.list[“任务”];
    var items=list.items.OfType()。其中(i=>(string)i[“Title”]==oldName);
    foreach(项目中的var项目)
    {
    项目[“标题”]=新名称;
    item.Update();
    }
    }
    }
    基本项目更新(属性);
    }
    
    此代码可能对您有所帮助。也许您需要根据自己的需要对其进行调整,但是您需要访问的属性是相同的

    public override void ItemUpdating(SPItemEventProperties properties)
    {
      //this will get your title before updating
      var oldName = properties.ListItem["Title"].ToString();
    
      //and this will get the new title
      var newName = properties.AfterProperties["Title"].ToString(); 
      if (newName != oldName)
      {
        using (var site = new SPSite("http://yoursitename"))
        using (var web = site.OpenWeb())
        {
          var list = web.Lists["Tasks"];
          var items = list.Items.OfType<SPListItem>().Where(i => (string) i["Title"] == oldName);
    
          foreach (var item in items)
          {
            item["Title"] = newName;
            item.Update();
          }
        }
      }
    base.ItemUpdating(properties);
    }
    
    公共覆盖无效项更新(SPItemEventProperties属性)
    {
    //这将在更新之前获取您的标题
    var oldName=properties.ListItem[“Title”].ToString();
    //这将得到新的标题
    var newName=properties.AfterProperties[“Title”].ToString();
    如果(新名称!=旧名称)
    {
    使用(var站点=新SPSite(“http://yoursitename"))
    使用(var web=site.OpenWeb())
    {
    var list=web.list[“任务”];
    var items=list.items.OfType()。其中(i=>(string)i[“Title”]==oldName);
    foreach(项目中的var项目)
    {
    项目[“标题”]=新名称;
    item.Update();
    }
    }
    }
    基本项目更新(属性);
    }