1

为每个添加到特定文档库的新文档显示自定义表单的最佳方式是什么?

我希望用户能够对添加文档将导致的某些操作进行一些控制 - 特别是为任务列表中的用户创建的任务,贡献用户在提交之前必须确定。

最好的方法是通过工作流还是事件处理程序?

问候哞

4

4 回答 4

0

对于 SharePoint 服务器 2007:

专门的内容类型和事件处理程序的组合将使您能够最大程度地控制流程(也更易于调试)。工作流最适合“简单”的操作,更难实现复杂的操作。

工作流允许站点管理员更灵活地将工作流分配给不同的库。

将您的内容类型和事件处理程序滚动到可以部署的功能中。将内容类型分配给列表将允许您获取由标准表单创建的任何数据(请记住,您可以为真正复杂/自定义数据输入创建自定义字段)并执行所需的任何操作,包括基于项目创建任务。

于 2008-12-01T21:09:46.573 回答
0

感谢您的回答,这就是我正在调查的路线,但不幸的是我还没有找到一种方法让它适用于文档库 - 仅限列表。

我遇到的问题是在文档库上的 ItemAdded、ItemAdding、ItemCheckingIn 或 ItemCheckedIn 事件中添加 SPUtility.Redirect 根本没有做任何事情,因为没有与事件相关的页面 - 它的所有后端代码都是触发了未链接到 Web 上下文的事件,因为它不是在那个时候进行繁重工作的网页,而是 Office 集成。

我遇到的所有示例似乎都依赖于在触发事件时正在显示 EditForm.aspx 或 NewForm.aspx 页面这一事实,当然这里不是这种情况。

这也导致了我无法扩展 EditForm.aspx 或 CheckIn.aspx 页面来做我想做的事情,因为 Office 2007 绕过了这两个问题。

因此,目前对我开放的唯一选择是通过工作流程进行:/

任何进一步的提示都会很棒。

于 2008-12-02T14:42:25.483 回答
0

我可能不明白你的问题,但这接近你想要做的吗?

http://msdn.microsoft.com/en-us/library/ms550037.aspx

如果没有,这会以什么方式不足?

于 2008-12-29T05:26:03.790 回答
0

将其新表单 url 设置为适当值的新“内容类型”应该可以解决问题。不幸的是,您可能无法使用事件处理程序或工作流来实现您想要实现的目标。理想情况下,您希望表单在用户向库中添加新项目时立即显示,并且自定义内容类型可以解决问题。

  1. 创建一个新的内容类型。(从现有的内容类型派生它)
  2. 从文档库中删除默认内容类型。
  3. 使用对象模型将新表单 url 设置为您创建的 aspx 页面或 Infopath 表单。

亲切的问候,

于 2008-12-29T05:44:23.397 回答