2012-03-23 17 views
0

我是新來的SharePoint,很抱歉,如果回答我的問題是顯而易見的。如何有選擇地禁止刪除SharePoint 2010中的任務?

我想禁止刪除用戶的一些任務。 我可以使用事件接收器,我的目的:

public override void ItemDeleting(SPItemEventProperties properties) 
{ 
    if (...) 
    { 
     properties.ErrorMessage = "The task can not be deleted"; 
     properties.Cancel = true; 
    } 
} 

但我不能檢查,如果我能刪除任務傳遞數據。 我tryed在接收器的條件使用

properties.ListItem.Properties["ForbidDeleting"].ToString().Equals("true") 

但沒有任何posibility中的CreateTask調用方法傳遞這樣propterty?我嘗試過使用ExtendedProperties,但這種方法不起作用。

.... 
task.ExtendedProperties["ForbidDeleting"] = "true" 

我可以創建類保持任務的GUID,它ForbidDeleting財產,但我認爲這不是一個解決方案,但解決方法。

請問您能幫我嗎?我如何設置一些任務屬性(在CreateTask調用方法中)並將其放入事件接收器中。有沒有建立的方式來做到這一點?

預先感謝您。 PS:對不起,我寫了。英語不是我的母語。

回答

0

您可以在您的事件接收器中覆蓋另一種方法:ItemAdding。你會設置一個字段,你可以在刪除條件以後使用:

public override void ItemAdding(SPItemEventProperties properties) 
{ 
    // Decide if this task should be deletable. 
    properties.AfterProperties["ForbidDeleting"] = true; 
} 

你必須確保布爾ForbidDeleting場在任務列表中存在;要麼使用您的模板創建它,要麼使用列表事件接收器來執行相同的操作,或者在添加第一個任務之前手動執行它。

如果你想設置的ForbidDeleting標誌第一任務(列表項)之後真的是(成功)創建你可以覆蓋ItemAdded但後來改變後明確地更新列表項。

--- Ferda

+0

謝謝你的答案。這是個好主意,但我已經找到了更好的解決方案來滿足我的需求。 – MikhailSP 2012-03-26 06:52:52

相關問題