我的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]" />
为什么上面的代码没有按照我的意愿去做?
答案 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问题。我不记得细节,但我的修复只是在打开表单时不包含该参数。
听起来像是一个不同的问题,但这可能有助于某人。
戴夫