2010-04-16 66 views
0

我有一個工作流程,創建一個任務,並在任務被編輯並獲取其有用信息後刪除它。我爲該任務創建了自定義編輯表單,因此我有一個SPLongOperation可用於停止頁面。這是必要的,因爲如果我不以某種方式拖動頁面,那麼在工作流程刪除任務之前,此人將在任務列表中看到任務,這很糟糕。因此,有些代碼要拖延頁面,直到完全刪除任務爲止。如何使用SPLongOperation刪除SharePoint列表項目?

我目前已經爲此實現了一個解決方案,但我對這種方法並不滿意。它基本上被歸結爲while循環,它調用SPList.GetItemById直到它引發錯誤。有意試圖引發錯誤並不能很好地適應我,但我想不出一種更快的方法來檢查它。我正在尋找替代品,如果速度不那麼快,最好不要依靠捕捉異常來更快地工作。

回答

1

如何使用SPQuery來查找ID,如果它沒有找到它,然後繼續。這不會拋出任何例外。

+0

因此,在while循環之外初始化一個查詢ID,然後運行循環直到'SPList.GetItems(q).Count == 0'?按照這些思路思考,我還沒有真正使用過LINQ,但是它會更快嗎? – 2010-04-16 15:06:42

+0

不需要混淆LINQ,只需在Thread.Sleep(100)循環中重複查詢,所有應該都可以。我不知道你的確切邏輯或爲什麼這是一個問題,但即使在大列表中,SPQuery也是查詢的有效方法。 – 2010-04-16 15:45:15

+0

這不是問題......只是這個問題的目的是探索所有可能性。問一個類似的方法,似乎符合該邏輯。 – 2010-04-16 16:00:56

相關問題