【问题标题】:Sharepoint : Event Receiver : Item AddingSharepoint:事件接收器:项目添加
【发布时间】:2010-12-03 10:25:41
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: sharepoint event-receiver


    【解决方案1】:

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

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

    恐怕没有简单的出路。

    -奥辛

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 意识到我回答了一个 3 年前的问题。希望有人觉得这很有用:-S。
      • 回答问题永远不会太晚。总有人在寻找答案:)。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      相关资源
      最近更新 更多