问题标签 [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.

0 投票
2 回答
20312 浏览

c# - 在事件接收器中获取 SharePoint ListItem 的 After 和 Before 属性

所以我试图在我的 SharePoint 2010 列表中完成这种功能:

我的列表中有一个类型选择字段,它有 7 个值,我希望用户不能将该字段的值从值 2、3、4、5、6、7 更改为值 1。

我已经为该列表编写了一个事件接收器,这是我的代码:

我试过同时使用ItemUpdatedItemUpdating事件接收器,当我调试时,我看到事件接收器 get 被调用,但是在这两种情况下都是从项目中beforeStatus获取afterStatus的。null

那么,如何在正确更新之前和之后获取项目字段的值?提前致谢!

注意:字段的内部名称和显示名称都是Status.

0 投票
1 回答
145 浏览

c# - 为远程 Sharepoint 2010 创建 EventReceiver

我已经给出了一个托管在远程服务器上某处的 Sharepoint Site 的 URL。我正在尝试为该站点上的库编写一个事件接收器,但是当我尝试指定站点的 url(在远程机器上)时,Visual Studio(2010)给出以下错误。 输入网址后出错

经过一番搜索..我认为我们不能将 eventreceiver 写入远程机器/服务器上的 sharepoint(2010) 站点。

如果还有其他可能性,请提出建议。

0 投票
2 回答
11167 浏览

c# - 如何使用 SharePoint 2013 事件接收器以正确的顺序检索列表项附件

我在自定义列表中创建了标准 SharePoint 2013 事件接收器。

观看的事件 =“添加项目”。

稍后在我的代码中,我需要按照用户插入它们的顺序检索列表项的附件。但不幸的是,SharePoint 默认情况下似乎不这样做。

示例

用户创建一个列表项并附加以下文件

图片_front.jpg

图片_back.png

图片_231.jpg

现在在我的事件接收器中,我可能首先得到“Picture_back”然后是“Picture_front”......或以任何其他顺序。

如何以与附加到列表项相同的顺序检索附件?我尝试使用SPFile 属性'TimeCreated',但这也不起作用......他们得到了相同的时间戳:((如果我使用的是'Ticks')

有什么想法还是我做错了什么?

这是我的代码:

0 投票
2 回答
2599 浏览

c# - Sharepoint 2013 服务器对象模型。在站点创建期间将权限从一个站点复制到另一个站点

我想将网站集 A 的权限复制到我在同一个 Web 应用程序中的网站集 B 中创建的网站。这发生在 ItemAdded 上的列表项事件接收器中。

这是我到目前为止...

此代码成功: 1. 在其他网站集中创建一个新网站。2. 在新创建的站点上中断继承。3.从新创建的站点中删除原来的权限。

此代码未成功:

  1. 将组从其他网站集中复制到新网站。
0 投票
1 回答
484 浏览

c# - 更新 Splistitem 字段的事件接收器问题

只有当我通过 Office Word 将文档另存为事件接收器中的 Sharepoint 时,我才在更新 Splistitem 字段时遇到问题。

当我从 Sharepoint 添加文档时,它可以工作。

这是我的代码:

0 投票
2 回答
2417 浏览

c# - 使用自定义字段类型的 SharePoint 自定义上传页面

是否可以在 SharePoint 中创建将文件上传控件与自定义字段类型相结合的自定义上传页面,以便用户可以从硬盘驱动器中选择要上传的文件、输入文件标题、可选地添加评论、指定内容在几个自定义字段中键入并输入其他数据并创建新的 SPListItem,上传文件并将其关联到新的 SPListItem,最后将所有输入自定义字段的值成功保存到新创建的 SPListItem?

注意:我希望使用 SharePoint 自定义字段类型来执行此任务,而不是简单地使用带有一堆用户控件的自定义 ASPX 页面。

使用自定义字段类型时存在的根本问题是 SharePoint 文档库中的文件上传事件是异步事件。您可以覆盖 SPListItemEventReceiver 中可用的 ItemAdding 方法的默认行为,该方法可用于在文件“正在上传”时访问某些信息,并且您同样可以从 ItemAdded 访问有关新创建的 SPListItem 的信息被称为“在已添加项目之后”的方法 - 但由于此方法发生在单独的线程中并且在不知道与自定义字段或其各自值相关的任何内容的情况下异步执行,因此用户输入的任何数据都没有在那些领域被成功保存。

当用户希望通过使用 EditFormTemplate 编辑自定义字段中的值来更新有关文档的信息时,会在初始化期间设置每个字段的 SPListItem 属性。这一切都很好,因为在这种情况下 ListItem 已经存在!问题是,当用户第一次希望上传文档时,ListItem 显然还不存在,因此每个字段都使用设置为“null”的 SPListItem 属性进行初始化,并且将永远保持为 null,因为只是没有'似乎没有任何方法可以在文件上传后使用对新创建的 ListItem 的引用来追溯更新每个字段的 ListItem 属性!

正是出于这个原因,也正是这个原因,为什么微软坚持强迫用户在一个屏幕上上传他们的文件,然后在文件成功上传后将他们重定向到编辑表单。通过拆分这两个页面,Microsoft 强制用户上传文件并在保存有关文件的任何其他信息之前创建ListItem 。上传文件并创建 ListItem 后,将每个自定义字段的值保存回 ListItem 没有问题,因为 ListItem 已经存在

注意: BaseFieldControl 继承自 FieldMetadata,后者继承自 FormComponent。FormComponent 有一个名为Item的属性,它对应于该字段所属的基础 SPListItem。BaseFieldControl 有一个名为ListItemFieldValue的属性,它存储保存回 ListItem 的字段的实际值,它还有一个名为UpdateFieldValueInItem()的可覆盖方法,可用于在将数据分配给之前执行附加逻辑(例如验证) ItemFieldValue属性

更新现有的SPListItem时,以下代码有效,并且自定义字段值将被保存,因为 SPListItem 已经存在!

在 SPListItemEventReceiver 中,在初始文件上传期间,在创建 ListItem 并且各个自定义字段值“尝试保存”之后,ItemUpdating/ItemUpdated 方法将包含对 SPItemEventProperties 属性的空引用。ListItem 因为如前所述, ItemAdded 方法被异步触发,并且新创建的 ListItem 在 ItemUpdating/ItemUpdated 方法中不可用。

0 投票
1 回答
1390 浏览

caching - OWSTimer 缓存程序集?SP 2010 dll 问题

我有一个无法在我的 SP 农场中删除的幻像/缓存 .dll。我正在更新 Example.dll,其中包含我对其进行了更改的电子邮件事件接收器。重新部署到 GAC 并重新启动应用程序池根本不起作用。尽管我尽一切努力追踪并替换它,但旧的 dll 仍在运行。

我了解 SP Timer 在内存中保存了一个版本。因此,经过数小时的阅读,我尝试了以下方法(在场中的所有服务器上):

IISRESET(通过 cmd 和 IIS 管理器) GAC 部署(通过拖放和 gacutil /f) 重置 SPTimer(通过 Services.msc 和 Powershell) 强制其他不相关的计时器作业运行 使用进程资源管理器终止所有相关进程 清除 SP 配置缓存寻找 C:\Windows\assembly\temp (不存在) 最后,重新启动服务器

旧代码仍在运行!到底是怎么回事?这个旧程序集在哪里?我无法重新部署该功能,因为我的前任可能正在删除功能停用列表,并且它包含数千行风险太大的代码。请帮帮我!

0 投票
1 回答
671 浏览

sharepoint-2010 - 如何将 SPEmailEventReceiver 附加到文档库?

将 SPEmailEventReceiver 附加到文档库有哪些选择?Elements 文件是否应该包含特定的库?

手动,编程或powershell如何附加它?

0 投票
1 回答
359 浏览

sharepoint-2010 - 事件接收器中断功能

我有一个包含事件接收器的 SharePoint 项目,只要我从列表中省略一个特定的事件接收器,解决方案就可以很好地部署。

如果我将该事件接收器添加到功能列表中,我会收到以下错误:“部署步骤“激活功能”中发生错误:

这个项目不是由我开始的,当涉及到事件接收器项目时,我有点新手。

0 投票
1 回答
402 浏览

asynchronous - SharePoint 异步事件接收器方法调用行为

在任务列表项添加事件中,我有两种方法如下

method1() // 执行时间:3 秒 method2() // 执行时间:2 秒

在完成 method1() 执行之前,它会自动移动到 method2() 并开始执行。不知何故,我能理解这是因为异步事件。如何解决这个问题?