【问题标题】:Displaying a custom form on a new item event in SharePoint 3 document libraries?在 SharePoint 3 文档库中的新项目事件上显示自定义表单?
【发布时间】:2010-09-24 18:40:40
【问题描述】:

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

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

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

问候 哞哞

【问题讨论】:

    标签: sharepoint workflow event-handling


    【解决方案1】:

    对于 SharePoint server 2007:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      所以,目前对我开放的唯一选择是通过工作流来完成:/

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

      【讨论】:

        【解决方案3】:

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

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

        如果没有,这有什么不足之处?

        【讨论】:

          【解决方案4】:

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

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

          亲切的问候,

          【讨论】:

            猜你喜欢
            • 2021-11-17
            • 2010-11-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-05-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多