2009-11-12 25 views
1

这是用于使用自定义Editform.aspx将数据提交到自定义列表。一旦用户完成了表单,他应该能够点击一个按钮甚至是OK按钮,并让Sharepoint将表单数据提交到列表中,然后重定向到项目Display窗体(dispform.aspx?ID ='itemid') 。 我能够通过处理document.location.href来获取当前项目的ID。我尝试使用带__commit和__redirect的__doPostBack(重定向到URL displayform?ID ='itemid')来实现javascript中的回发,但是当重定向发生时,我看到更改没有更新!Sharepoint:从编辑表单提交表单数据,然后重定向到显示表单

任何人都可以做这样的事情?

回答

1

通过修改Source querystring参数中的URL,可以将表单重定向到发布后的任何位置。使用javascript,你可以在那个查询字符串参数中寻找一个特定的URL(/location/dispform.asp?ID=),如果它不存在,将页面重定向到它本身,但是将Source参数填充到位置w /你想要发送给他们的ID。

最难的部分是解析JavaScript中的当前URL +参数。有一些JS代码片断我发现使它更容易。

以这种方式重写EditForm URL的奖励之一是取消按钮会将用户发送到DispForm页面,而不是他们最初来自哪里,虽然大多数人可能使用后退按钮。

+0

我从来没有考虑过Source参数!我会尝试一下,让你知道事情如何泛滥! :) 谢谢!! – Alarius 2009-11-13 19:07:36

+0

这对我有效;很高兴我找到了提示。谢谢! – thornomad 2013-03-15 13:09:59

0

这导致我解决我的表单操作的问题,在我的DispForm,不会采取列表项ID为自定义EditForm。下面结束了对我的工作:

onclick="javascript: {ddwrt:GenFireServerEvent(concat('__redirect={ProgEditForm.aspx?ID=+',$ListItemId,'}'))}" 

我哪里有

参数资料来源DispForm参数ListItemID:查询字符串
查询字符串变量:ID
默认值:0

希望能帮助别人,因为这会让我发疯!