如何在创建SharePoint列表时触发代码?

时间:2009-03-16 18:49:58

标签: sharepoint

我知道列表中的事件接收器已添加的项目等。但是,我没有找到在创建列表时触发代码的方法。

我要做的是在创建列表时(由用户通过UI)将工作流与列表相关联。

任何想法?

感谢。

4 个答案:

答案 0 :(得分:6)

您可以选择几条路线......

您可以在已定义工作流关联的位置编写自己的列表定义 - 这样,基于列表定义创建的所有列表都将默认包含您的工作流。

或者......取决于您的工作流程...将EventReceiver写入您希望附加工作流程的所有类型的列表(可以很容易地实现功能)并让您的事件接收者关联工作流程第一项被添加。

或者您可以将工作流程与列表中使用的内容类型相关联(您自己的内容类型附加到您自己的列表定义或默认的SharePoint内容类型)

我不知道你的其他解决方案,所以对我来说建议最好的解决方案是不合适的。

我(几乎)总是这样做,就是编写我自己的列表定义 - 这样我现在或将来都可以避免这样的问题。

答案 1 :(得分:3)

使用SharePoint 2010,现在可以通过覆盖SPListEventReceiver类中的ListAdded事件来挂钩列表创建事件。

答案 2 :(得分:1)

我通常会部署一个额外的视图页面,该页面设置为默认视图。当用户创建列表时,他将被发送到包含后面代码中的设置的视图页面。视图页面然后调用已创建的方法,该方法更改默认视图,删除设置视图并更改指向设置视图的任何导航节点。

答案 3 :(得分:1)

这个问题可能没有完美的答案,因为没有列表添加事件接收器(如果内存让我正确)。

我不知道是否是这种情况,但是如果你真的需要将一个itemadded(或更新,删除等)事件注册到任何新列表,我相信你可以在网站上注册这些事件(SPWeb)级别,它们将触发创建的任何新列表。