2012-03-19 51 views
1

我是新來的sharepoint開發人員,我有任務在手。我需要爲以下邏輯添加幾行代碼。在Sharepoint工作流程中需要幫助

  1. 需要檢查以前的標題和任務項目的新標題是否相同。
  2. 如果沒有,那麼查詢任務列表
  3. 找到所有包含以前的標題
  4. 更新他們的標題的項目。

這裏是我的僞代碼:

public override void ItemUpdating(SPItemEventProperties properties) 
{ 
try { 
     this.DisableEventFiring(); 
     //Need to write my logic here 

     base.ItemUpdating(properties); 
    } 
    catch (Exception ex) { 

    } 
    finally { 
     this.EnableEventFiring(); 
    } 
} 

有人可以指導我如何寫上述邏輯的代碼?如果您有任何具有類似邏輯的示例代碼,請分享它。這對我有幫助。

在此先感謝!

回答

1

此代碼可能會幫助你。也許你需要根據自己的需求來調整它,但是你需要訪問的屬性是一樣的。

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