在事件接收器中获取自定义的AfterProperties列

时间:2011-07-19 09:39:01

标签: sharepoint sharepoint-2010 sharepoint-2007

我想在用户添加项目时显示错误消息。 所以我使用类似的代码:

public override void ItemAdding(SPItemEventProperties properties)
{
 properties.Cancel = true;
 properties.ErroMessage = properties.AfterProperties[columnname];
}

不幸的是,当列名是默认列时,它才有效。 对于自定义列,它不起作用。 我收到此错误消息:

event receiver has canceled the request

我尝试了一切: 列名是正确的,列不为null,.. 如果我写一个控制台应用程序获取此列,一切都会正常。 仅在事件接收器中它不起作用。

有人可以帮忙吗?太棒了!

1 个答案:

答案 0 :(得分:0)

希望不是太愚蠢的问题,但您使用的是SharePoint识别的列名吗?我问的原因是你提到这些是自定义的列。当您通过UI定义列时,幕后的列名称最终会变得类似但不相同。

这个page为您提供了一些DisplayName与InternalName的视图。正如作者所提到的,当您通过UI重命名列时,事情变得更加复杂。