如何有选择地禁止删除SharePoint 2010中的任务?
我是SharePoint新手,若我的问题答案显而易见,那个么很抱歉 我想禁止删除用户的某些任务。 我可以将事件接收器用于我的目的:如何有选择地禁止删除SharePoint 2010中的任务?,sharepoint,sharepoint-2010,properties,Sharepoint,Sharepoint 2010,Properties,我是SharePoint新手,若我的问题答案显而易见,那个么很抱歉 我想禁止删除用户的某些任务。 我可以将事件接收器用于我的目的: public override void ItemDeleting(SPItemEventProperties properties) { if (...) { properties.ErrorMessage = "The task can not be deleted"; properties.Cancel =
public override void ItemDeleting(SPItemEventProperties properties)
{
if (...)
{
properties.ErrorMessage = "The task can not be deleted";
properties.Cancel = true;
}
}
但我无法传递数据以检查是否可以删除任务。
我试着用
properties.ListItem.Properties["ForbidDeleting"].ToString().Equals("true")
但在CreateTask调用方法中是否有可能传递这样的属性?我尝试过使用ExtendedProperties,但这种方法不起作用
....
task.ExtendedProperties["ForbidDeleting"] = "true"
我可以创建我的类来保留任务guid,并禁止删除属性,但我认为这不是一个解决方案,而是一种变通方法
你能帮我吗?如何设置一些任务属性(在CreateTask调用方法中)并在事件接收器中获取它。有什么内在的方法可以做到这一点吗
先谢谢你
PS:对不起,我写了。英语不是我的母语。您可以覆盖事件接收器中的其他方法:。您可以设置一个字段,以便以后在删除条件中使用:
public override void ItemAdding(SPItemEventProperties properties)
{
// Decide if this task should be deletable.
properties.AfterProperties["ForbidDeleting"] = true;
}
您必须确保任务列表中存在删除字段;通过使用模板创建它,或者使用列表事件接收器执行相同的操作,或者在添加第一个任务之前手动执行
如果要在任务(列表项)真正(成功)创建后首先设置禁止删除标志,则可以覆盖,但在更改后显式更新列表项
---费达我找到了一个解决办法。我必须在事件接收器中使用如下代码来检索扩展属性:
Hashtable extendedProperties = SPWorkflowTask.GetExtendedPropertiesAsHashtable(taskItem);
var value = extendedProperties[key].ToString();
感谢亚历山大:谢谢你的回答。这是个好主意,但我已经找到了更好的解决方案。