问题标签 [event-receiver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sharepoint - Sharepoint 项目更新事件 - 取消事件返回编辑表单页面?
我有一个内容类型的事件接收器来验证 ItemUpdating 事件中的一些数据。如果我取消事件(例如,某些数据无效),我将属性取消设置为 true:
SharePoint 取消更新事件 ok,但显示标准 SharePoint 错误页面(带有指定消息)。唯一的问题是,我抱怨说这实际上不是很有用 - 我们应该返回 EditForm 页面以便更新详细信息。
有没有人这样做过,有没有简单的方法?我得到的唯一建议是我可以实现自己的错误页面,但这听起来对(理论上)简单的过程来说是一个相当沉重的解决方案。
visual-studio - 我应该如何在 Visual Studio 中组织 SharePoint 事件接收器?
我们有几个自定义列表,每个列表都有几个与之关联的事件接收器(尽管到目前为止实际上只编写了几个)。此事件接收器处理单个事件的混杂并执行各种功能。我的问题是如何以一种有意义的方式在 Visual Studio 解决方案/项目中组织它们。哪些事件接收器应该有自己的函数/类/文件夹/项目/解决方案?
目前,我们有两个解决方案,每个解决方案都只是使用 Visual Studio 默认使用的任何内容,在使用自己的解决方案创建新的事件接收器项目时。另一个有一个项目,其中一个文件夹以特定列表命名,该列表设置为处理该列表上的两个事件(ItemAdded 和 ItemUpdating)。该文件夹包含两个 C# 文件,每个文件都包含自己的类,其中包含一个用于该特定事件接收器的函数。
但是,如果我有多个事件接收器用于一个列表,我应该将它们放入一个文件中吗?还是放到同一个文件夹中的单独文件中?还是进入单独的项目?如果我有两个逻辑上不同的操作应该在同一个事件中对同一个列表项执行,我应该有一个事件接收器来执行这两个操作,还是为每个操作单独的事件接收器?
我目前的想法是为每个列表创建一个文件夹,为每个事件接收器提供单独的文件,并使用单个事件接收器在该事件期间执行任何适当的操作(无论是否独立)。我只是想知道什么是“最佳实践”类型的组织。
event-handling - Visual Studio 2010 中的事件接收器问题
我试图弄清楚如何从 base.ItemAdding(properties); 获取列表项的标题。我知道它在属性中的某个地方,因为我想要做的是复制刚刚添加到另一个列表中的项目,这意味着相同的项目将被添加到另一个列表中,谁能帮我从刚刚添加的项目,例如标题、描述、...
已经谢谢了。
sharepoint - Sharepoint 同步事件接收器
我对 Sharepoint 2007 中的同步事件接收器有疑问。
例如,让我们看一下事件ItemUpdating:如果我不手动取消更新操作是否会成功?我知道该事件可能会被另一个事件接收者取消。但是假设没有其他事件接收器并且 SP 将正常运行(没有完整的 DB 或任何其他异常问题..)
我问是因为我想执行一些只有在事件成功时才有意义的操作。但是,由于异步“事件属性”缺少很多信息,我不得不改用同步事件。
感谢您的反馈
sharepoint - SharePoint:更新单个项目的多个事件
我有一个用于页面库中的特定内容类型的项目事件接收器。我正在使用事件记录器对其进行调试,并且可以看出,每当我编辑页面并发布它时,它都会触发 3 个ItemUpdating
和 3 个ItemUpdated
事件。我确信在那个特定时间没有其他页面被保存。
这是什么原因,有什么方法可以“修复”它以每页发布仅触发 1 个事件?
或者,有什么方法可以将最后一个事件(即:页面现在已发布或正在发布)与其他事件区分开来,所以我最终不会运行我的代码三次?
sharepoint-2010 - SPListItem 事件接收器不执行 ItemAdded 事件
我使用 SharePoint 2010 和 Visual Studio 2010 创建了一个项目事件接收器。事件接收器执行ItemDeleting
但它不能执行ItemAdding
或ItemAdded
事件。
我的问题是我在编辑表单中上传了项目的图像,所以我想在添加新项目后打开编辑表单,所以我假设我可以在项目的已添加事件中重定向到编辑页面。
sharepoint - 通过命令行停用功能不会触发 SPFeature 事件接收器
我正在通过 stsadm 工具停用一项功能。我为此操作启用了事件接收器。如果我从站点手动停用该功能,则会触发事件,但在运行 stsadm 命令时不会触发。
请帮忙...
这是西尔文的代码:
sharepoint - SharePoint ItemAdded 和 SPFile.OpenBinary(),零字节
我有一个绑定到 SharePoint 2010 图片库的事件接收器。上传图片后,我想打开它进行处理。使用 Web 界面上传的文件工作正常,但通过 Windows 资源管理器视图复制的文件返回零字节。下面的简化代码。
如果我在打开之前插入延迟,它会起作用。
但我认为 ItemAdded 仅在一切完成后才被调用,包括文件上传。我还发现 file.CanOpenFile(true) 总是返回 true,无论 OpenBinary 是否有效。
在调用 OpenBinary() 之前,如何确保文件已准备好打开?我不喜欢 Thread.Sleep 解决方案,因为我确信更大的文件或更繁忙的服务器需要更多的等待。所需的时间无法预测,我不想永远循环再试一次。
更新:我原本以为打开失败是因为文件比较大。问题已更新,以反映资源管理器的观点作为原因。我还发现 Windows 资源管理器副本也会触发 ItemUpdated(两次),我可以在此处打开文件。有 3 个触发器,2 个调用做 1 件事有点混乱,所以我仍然愿意接受建议。
sharepoint - SharePoint 列表项事件处理程序
我的 SharePoint 2007 项目中有以下场景。我有计时器作业定义,每 30 分钟更新一次 SQL 数据库表中的 SharePoint 列表。
我还为我的列表添加了项目事件处理程序,因此它不允许用户从 SharePoint 用户界面将新项目添加到列表中。换句话说,只能通过 SharePoint 对象模型在计时器作业定义中添加新列表项,并且不应允许从 UI 添加新项。
我的问题是 - 即使从计时器作业定义中添加新项目,事件处理程序也会被执行,我可以以某种方式检查事件处理程序是如何添加项目的(通过对象模型或通过用户界面)。
非常感谢, Hrayr
sharepoint - 如何为基于自定义内容类型的单个列表创建事件接收器?
我正在尝试为我创建的名为 Questions 的列表创建一个事件接收器。
添加新问题时,我希望触发一个事件。我已经研究过了,所以我知道我需要创建一个事件接收器并使用 ItemAdded 方法。
如何将其绑定到列表的一个实例,以及在创建接收器时为 Source 类型选择什么?正如一些博客文章所建议的那样,我没有“自定义列表”选项。
希望有人能帮忙。。