Sharepoint:事件接收者:项目添加

时间:2009-10-02 19:06:11

标签: sharepoint event-receiver

有人在Sharepoint的事件接收器中成功使用“ItemAdding”方法进行验证吗?

我认为它无法正常用于验证目的,因为它似乎是:

  • 您无法访问自己的数据 以表格
  • 输入
  • 如果您添加错误消息, 而不是显示表格 回到你的错误,Sharepoint
    显示丑陋的大错误页面。

以下是我目前在网上发现的ItemAdding方法:

http://www.sharepoint-tips.com/2006/09/synchronous-add-list-event-itemadding.html

http://www.moss2007.be/blogs/vandest/archive/2007/07/20/wss-3-0-event-handler-pre-event-cancelling-issues.aspx

http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID=25

无论如何,如果有人成功使用了这种方法,请告诉我怎么样,因为我认为它只是破碎/遗漏了一些东西!

谢谢!

2 个答案:

答案 0 :(得分:6)

您不能使用ItemAdding执行那种“友好”的验证检查。如果设置e.Cancel = true并设置e.ErrorMessage,sharepoint会将您重定向到标准错误页面并显示您的消息。您无法将其重定向回您的表单页面。

您应该使用绑定到内容类型的infopath或aspx表单,而不是尝试破解内置页面。 Infopath具有内置的验证控件和您自己构建的aspx表单,您可以像对待任何Web应用程序一样对待它并选择您自己的验证。

恐怕没有简单的方法。

-Oisin

答案 1 :(得分:4)

可以访问刚刚在表单中添加的数据。查看添加/更新事件接收器中的properties.AfterProperties。

一个例子是properties.AfterProperties [“Title”]。

我同意错误处理有点困难,但除了让您的UI进行验证之外,我建议您在事件接收器中进行验证。如果它不是自定义页面,则可以使用内容编辑器Web部件将JavaScript添加到现有页面以进行验证。