2010-11-01 38 views
0

我有一個「Numbers」列表。此列表中的項目從1到10(ID以外的列將顯示此數字)。在共享點列表中刪除項目時重新排列列號

item[1st item]["order"]=1;item[2nd item]["order"]=2;......item[10th item]["order"]=10; 

如果任何項目刪除了,可以說項目[第6項] [ 「命令」] = 6;被刪除,那麼該列表中的項目應該是1到9,即當項目被刪除時,自動必須訂購這些值。在這裏,我使用ItemDeleted事件處理程序來實現此功能。但它不工作。我的代碼是:

public override void ItemDeleted (SPItemEventProperties properties) 
     { 
      SPSecurity.RunWithElevatedPrivileges(delegate() 
      { 
       string mysiteUrl = properties.WebUrl; 
       SPSite mysite = new SPSite(mysiteUrl); 
       SPWeb myweb = mysite.OpenWeb(); 
       myweb.AllowUnsafeUpdates = true; 
       SPList mylist = myweb.Lists["Numbers"]; 
       for (int i = 0; i < mylist.ItemCount; i++) 
       { 
        int order = int.Parse(mylist.Items[i]["order"].ToString()); 
        if (!(i + 1 == order)) 
        { 
         int categoryId = int.Parse(mylist.Items[i]["ID"].ToString()); 
         SPListItem item = mylist.GetItemById(categoryId); 
         item["Priority"] = i + 1; 
         mylist.Update(); 
        } 
       } 
       myweb.AllowUnsafeUpdates = false; 
      }); 
     } 

我安裝並激活了該功能。但它不工作。我不知道走錯了here.Please幫助我在這個問題上

+0

你是什麼項目[I] [「ID」]的意思???? – Shoban 2010-11-01 09:19:22

+0

我得到的項目的ID違反如果條件 – Abhimanyu 2010-11-01 09:22:21

+0

@Shoban,有沒有其他方法或方法重新排序列表 – Abhimanyu 2010-11-01 10:04:21

回答

0

嘗試調用Update()對SPListItem而不是SPList

+0

ya.its工作。 – Abhimanyu 2010-11-02 04:50:48