【问题标题】:SharePoint SaveButton RedirectURL attribute doesn't do anything. Why?SharePoint SaveButton RedirectURL 属性不执行任何操作。为什么?
【发布时间】:2014-03-27 09:16:32
【问题描述】:

我的 EditFormTemplate 中有一个 SharePoint SaveButton,我不希望浏览器重定向到默认位置,即列表视图(即 AllItems.aspx)。我希望将用户重定向到另一个页面。

许多其他人似乎也有同样的问题。我不希望将 SharePoint SaveButton 替换为标准的 aspx 按钮控件并使用 JavaScript,因为这会带来一系列问题,坦率地说,我不认为这种功能值得 JavaScript 破解。

如果 SharePoint SaveButton 确实存在名为“RedirectURL”的属性(它确实存在),那么它究竟为什么不简单地将浏览器重定向到指定的 URL?

<SharePoint:SaveButton ID="SaveButton1" runat="server" RedirectUrl="[My Custom URL]" />

为什么上面的代码没有做我想做的事?

【问题讨论】:

    标签: sharepoint sharepoint-2010 save url-redirection


    【解决方案1】:

    您需要使用 JavaScript 调用 ddwrt:GenFireServerEvent('_redirect={URL}'. 看看下面的例子:

    <input type="button" class="contact-button" value="Save" name="btnSave" onclick="javascript: {ddwrt:GenFireServerEvent('__commit;__redirect={example.aspx}')}" />
    

    希望这会有所帮助。

    【讨论】:

    • 我希望避免使用 JavaScript。为什么 RedirectURL 属性存在呢?它有什么用途?
    • 即使我使用上面的示例代码和 JavaScript onclick 事件使用标准 HTML 输入按钮路由,它仍然无法正常工作。事实上,按钮甚至没有被渲染。请注意,当我将这种方法用于我的自定义上传 ASPX 页面时,它可以正常工作。我遇到的问题发生在我的 EditForm RenderingTemplate 上。
    【解决方案2】:

    好的。我想通了。

    我创建了一个 SPListItemEventReceiver 并将 Elements.xml 文件中的 ItemUpdated Synchronization 元素设置为“Synchronous”。

    <Synchronization>Synchronous</Synchronization>
    

    然后我按照here 概述的说明进行操作。

    因为我需要在 Update 之后执行重定向,所以我不必做所有的麻烦事来尝试在更新中执行更新的异步操作上面链接中描述的 ItemAdded 和 ItemAdding 的异步事件。

    我只是添加了一个名为 currentContext 的私有 HttpContext 属性,添加了一个默认构造函数,其中我将 currentContext 属性设置为 HttpContext.Current,然后使用存储在构造函数中设置的 currentContext 属性中的值在我的 ItemUpdated 事件中执行 SPUtility.Redirect。

    【讨论】:

      【解决方案3】:

      如果使用 SaveButton 的表单的 URL 包含 Source 参数,我会遇到问题。我不记得细节,但我的解决方法是在打开表单时不包含该参数。

      听起来对您来说是一个不同的问题,但这可能会对某人有所帮助。

      戴夫

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-19
        • 1970-01-01
        • 1970-01-01
        • 2016-04-29
        • 1970-01-01
        • 2015-03-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多