2012-03-23 44 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

相关问题