问题标签 [eventreceiver]
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 WebDeleting 事件接收器时出错
我正在尝试在 SharePoint 中注册一个 WebDeleting 事件接收器。这在我的开发环境中运行良好,但在几个暂存环境中却不行。我得到的错误是“值不在预期范围内。”。这是我使用的代码:
我意识到我可以通过一个特征元素文件来做到这一点(我现在正在尝试这种方法),但更喜欢使用上述方法。
我在 ULS 日志中一直得到的错误是:
有任何想法吗?
更新 - 我学到了一些有趣的东西......
我修改了我的代码以执行以下操作:
- 我在没有 GUID 的情况下调用 EventReceivers.Add() 因为我看到的大多数示例都没有这样做
- 给事件接收者一个名称和序列号,因为我看到的大多数例子都是这样做的
我将此更改与一些额外的跟踪语句一起部署到 ULS 日志中,并且在执行了足够的 iisreset 并清除了我的程序集的 GAC 之后,我开始在 ULS 日志中看到我的新跟踪语句并且我不再收到错误!
所以,我开始回到我原来的代码,看看究竟是什么改变有帮助。我终于在源代码控制中使用了原始版本,它仍然有效:-S。
所以答案很明显是一些缓存问题。但是,当我最初试图让它工作时,我尝试了 IISRESET,重新启动了一些 SharePoint 服务 OWSTimer(我相信这会运行事件处理程序,但可能不涉及我收到错误的事件注册),并且甚至重新启动以确保没有程序集缓存正在进行 - 而这在以前没有帮助。
我唯一要做的就是遵循以下步骤:
- 清除包含注册码和事件处理程序类的程序集的 GAC。
- 做一个IISRESET。
- 卸载 WSP。
- 做一个IISRESET。
- 安装 WSP。
- 做一个IISRESET。
为了让它工作,我从来没有重新启动或重新启动 SharePoint 服务,但我在让它工作之前(在更改我的代码之前)完成了这些工作。
我想我可以用 Reflector 进行更多挖掘,看看我能找到什么,但我相信你很快就会走到死胡同(非托管代码)。我想知道什么可以保留旧的 DLL?我无法想象 SQL Server 会以某种方式出现。即便如此,重新启动也会解决这个问题(整个场,包括 SQL Server 在此环境中位于同一台计算机上)。
sharepoint - 内容类型上的事件接收器未在 WikiPageLibrary 上触发
我为 wiki 页面库创建了一个新的内容类型。我通过代码将此内容类型添加到库中(接口不允许这样做)。接下来,我向此内容类型添加了一个事件接收器(在 ItemAdded 和 ItemAdding 上)。我的问题是没有触发任何事件。如果我将此事件直接添加到 wiki 页面库中,则一切正常。有限制/错误/技巧吗?
我使用 SharePoint Manager 查看了附加到库的内容类型,在他的架构中缺少事件接收器的部分......我知道应该有类似的内容:
如果我使用 SPM 查看添加到站点的内容类型,我会在架构中看到这部分。
这是我的代码:
谢谢 !
sharepoint - SharePoint itemDeleting evert 不起作用
我在 SharePoint 中有一个网站,我想从列表中自定义删除。所以,我正在创建
其中“项目”类具有删除项目的“删除项目”方法。但它什么也没做:(我提到Feature.xml中的一切都很好
我哪里错了?
编辑(来自“答案”):
是的,我试过这个:
在 if 子句及其触发的事件中,并正确显示项目名称。
我是场管理员,并且是完全控制此站点的站点管理员。
DeleteProject 方法是对的,因为我已经在其他一些应用程序(c#)中尝试过它并且它工作正常。
c# - 在共享点列表上创建 excel 文档作为附件
在自定义列表中添加 Excel 文档作为附件时,我遇到了一些问题。我制作了一个 eventreceiver,它从其他列表中收集数据并将数据放入 excel 文档中。
我试图做些什么来纠正这个问题:
- 在单独的控制台应用程序中测试了 CreateContentRow(index, item)(有效)
- 检查从其他列表中获取信息是否有问题(作品)
- 尝试保存到文档库(文件保存时没有内容)
- 尝试打开 xlsx 文档以检查 xml 是否有问题(未添加自定义 xml)。
代码工作得很好,但是文档被保存了,但它与模板相同,没有添加任何内容。
我在另一个列表上使用相同的方法,在那里我生成 .docx 文档,它工作得很好。根据文件的 .xlsx 还是 .docx ,我应该如何保存文件有很大的不同吗?
当我调试单元格和行被添加到工作表数据,但它没有得到保存。有想法该怎么解决这个吗 ?
events - Sharepoint ItemAdding & ItemAdded 问题
我需要检索在共享点网页上显示和填写的 Infopath 文件,并将其数据保存到单独的数据库中。提交表单后会触发 2 个事件。ItemAdding
和ItemAdded
。
我知道我无法从ItemAdding
事件中检索文件,因为它只会在ItemAdding
事件之后保存。
但是,一旦我将值存储到数据库中,我想将用户重定向到不同的网站,但我找不到这样做的方法。我想,问题是在用户被重定向到显示“表单已关闭”的网页之后/或同时发生 ItemAdded 事件。
如何检索值并重定向用户?此外,我不允许将代码附加到 infopath 表单本身。这需要从 Sharepoint 处理。
谢谢
sharepoint - 如何仅为具有特定模板 ID 的列表添加事件接收器
我正在为自定义列表模板添加 ItemAdding 事件接收器。事件接收器和列表模板都由相同的功能部署。同样的功能也创建了列表实例。
我遇到的问题是,该事件是针对其部署到的站点中的每个列表项触发的。eventreceivre 的 Elements.xml 是:
我不确定我做错了什么我从这里或多或少地做了一切。
环境:Sharepoint 2010 在此站点上具有发布功能
sharepoint - 从 SPFieldBoolean 获取值
如何从 SPFieldBoolean 对象中获取值?我只是将它转换为布尔值还是需要对它做进一步的处理?
我在 ItemAdded 事件期间从 EventReceiver 类中获取它properties.ListItem["fieldname"]
。
如果该字段可能不存在(并且为空),我该如何检查?
sharepoint - 添加具有多个类文件的 SharePoint 功能
我正在制作一个包含多个项目的功能。
目前它包含一个具有 4ElementManifest
个条目的 Feature.xml 文件;两个用于特定的内容类型(Field
定义和FieldRef
s),一个用于某些 webpart,最后一个用于自定义页面布局。所有这些工作正常。
我已经使用 contenttype ( FieldRef
s) 更改了文件以添加接收器,因为我希望在通过ItemAdding
功能接收器添加项目时进行处理。该部分文件如下所示(我已删除程序集和类名,但它们是正确的):
除了这个文件,我使用一个自定义类文件来添加一些功能。对于 FeatureReceiver 类和自定义类文件,我是否需要向 feature.xml 或其他一些 xml 文件添加任何内容以确保它们被包含在内?我希望将它们全部添加为一个功能。
event-handling - 在 EventReceiver 之后调用 SharePoint 工作流
我有一个关于共享点工作流程和事件接收器的问题。我有一个在元素上设置元数据的事件接收器。之后,我使用工作流将项目元数据复制到列表中。不幸的是,工作流不会复制事件接收器设置的元数据。我想是因为它是在事件接收器之前执行的。是否有可能更改顺序,以便在事件接收器之后执行工作流?接收者以同步方式绑定到 ItemAdded 和 ItemUpdated 事件。
谢谢您的帮助!帕特里克
sharepoint-2010 - Sharepoint 2010 日历事件接收器
我的任务是在根站点中创建一个从子站点日历事件更新的日历。
我可以从子站点的父站点访问日历列表以添加事件。但是,我很难找到一种方法来为事件创建唯一标识符,以便在更新或删除子日历的事件时,父站点日历也会更新。
ListItem ID 字段似乎仅在站点中是唯一的。我确实找到了一个 UniqueItemId 字段,但显然它在 SP Listitem 对象中是只读的。
有人可以在这里给我一些指导吗?
非常感谢!