3

有人在 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

无论如何,如果有人成功地使用了该方法,请告诉我如何,因为我认为它只是损坏/丢失了一些东西!

谢谢!

4

2 回答 2

6

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

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

恐怕没有容易的出路。

-Oisin

于 2009-10-03T15:20:55.540 回答
4

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

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

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

于 2012-09-14T19:26:44.010 回答