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

Sharepoint:事件接收器:添加项目,sharepoint,event-receiver,Sharepoint,Event Receiver,是否有人在Sharepoint中的事件接收器中成功使用“ItemAdding”方法进行验证 我认为出于验证目的,它无法正常工作,因为它似乎: 你不能访问你刚刚访问的数据 以表格形式输入 如果添加错误消息, 而不是显示表单 返回您的错误,Sharepoint 显示大错误页面 以下是我在web上找到的ItemAdding方法: 不管怎样,如果有人成功地使用了这种方法,请告诉我是怎么做的,因为我认为它只是坏了/缺少了一些东西 谢谢 您不能使用ItemAdding来执行那种“友好”的验证检查。

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

我认为出于验证目的,它无法正常工作,因为它似乎:

  • 你不能访问你刚刚访问的数据 以表格形式输入
  • 如果添加错误消息, 而不是显示表单 返回您的错误,Sharepoint
    显示大错误页面
以下是我在web上找到的ItemAdding方法:

不管怎样,如果有人成功地使用了这种方法,请告诉我是怎么做的,因为我认为它只是坏了/缺少了一些东西


谢谢

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

与其尝试破解内置页面,不如使用绑定到内容类型的infopath或aspx表单。Infopath具有内置的验证控件,通过您自己构建的aspx表单,您可以将其视为任何web应用程序,并选择自己的验证

恐怕这里没有容易的出路

-Oisin

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

例如properties.AfterProperties[“Title”]


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

请注意,我回答了一个3年前的问题。希望有人会觉得这很有用:-S.回答问题永远不会太晚。总有人在寻找答案:)。谢谢