SharePoint SaveButton RedirectURL属性不执行任何操作。为什么?

时间:2014-03-26 15:50:02

标签: sharepoint sharepoint-2010 save url-redirection

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

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

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

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

为什么上面的代码没有按照我的意愿去做?

3 个答案:

答案 0 :(得分:1)

您需要使用JavaScript调用ddwrt:GenFireServerEvent(&#39; _redirect = {URL}&#39;。 看一下下面的例子:

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

希望这有帮助。

答案 1 :(得分:0)

行。我想通了。

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

<Synchronization>Synchronous</Synchronization>

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

由于我需要在 更新 之后执行重定向,因此我不需要执行所有hacky内容来尝试在更新中执行更新的异步操作如上面链接中针对ItemAdded和ItemAdding所述的异步事件。

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

答案 2 :(得分:0)

如果使用表单的网址包含参数,我遇到了SaveButton问题。我不记得细节,但我的修复只是在打开表单时不包含该参数。

听起来像是一个不同的问题,但这可能有助于某人。

戴夫