2009-11-23 55 views
2

在項目獲得批准後,是否有辦法禁用編輯?如何在SharePoint(WSS)中批准後禁用項目編輯?

我想過的一個選擇是編寫一個事件處理程序,當用戶嘗試編輯該項目並允許基於審批狀態的操作時將觸發該事件處理程序。

有沒有人有更直接的解決方案來解決這個問題?

P.S.該項目的所有者應保持不變。

回答

1

這些步驟我想借此:

  1. 創建ItemUpdated事件hanlder。
  2. 在事件處理程序中檢查狀態列。
  3. 如果狀態被批准,中斷該項目的權限繼承,刪除貢獻權限並添加讀取權限。

P.S.您還可以通過使用SharePoint Designer工作流和自定義活動沒有代碼做這件事http://spdactivities.codeplex.com

1

您可以添加一個ItemUpdating處理程序,只是抵消未來更新操作,以給用戶一個合理的錯誤消息。不過,這樣做有點愚蠢,因爲你仍然給他們一個機會試圖編輯該項目,然後砰地關上門。

OTTOMH,您可能需要在您的schema.xml文件中爲您的列表定義聲明一個custom edit form。對於編輯表單,您可以指向自定義應用程序頁面,以評估項目的可編輯性。如果該項目是可編輯的,它將重定向到常規編輯表單。如果它不可編輯,則顯示明智的錯誤消息。

Unclepaul84的想法很好,特別是如果你想確保用戶甚至沒有看到一個項目的「編輯」菜單。您將有責任查看任何現有列表數據並應用這些安全設置,如果您的規則發生變化,則必須返回並重新應用正確的設置。這可能不是你最關心的問題,但是如果你的規則可能有一天會改變,或者如果你的規則真的更具動態性,我認爲攔截編輯表單可能會給你更好的里程。

相關問題