如何从NewForm.aspx重定向到EditForm.aspx
问题描述:
我想从NewForm.aspx重定向到EditForm.aspx,我该如何实现.
i want to redirect from NewForm.aspx to EditForm.aspx , how can i achieve this.
我正在使用下面的脚本,它工作正常,但是有一些问题,例如
I am using below script , it is working fine but there are some issues like
1)如果有多个用户创建列表项
1) if multiple users creating a list item
2)如果我们删除列表项
2) if we delete list item
我正在检查是否还有其他重定向选项
i was checking if there is another option for redirecting
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script><script
type="text/javascript">
$(document).ready(function(){
GetID();
});
function GetID(){
var listName="testlist";
var requestUri = "http://mysitename" +
"/_api/Web/Lists/getByTitle('"+listName+"')/items?$top=1&$select=ID&$orderby=ID desc";
// execute AJAX request
$.ajax({
url: requestUri,
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
success: function (data) {
if(data.d.results.length>0){
var field=data.d.results[0];
var plusval = 1;
var thisurl = "http://mysitename/Lists/testlist/NewForm.aspx?Source=http://mysitename/.....EditForm.aspx?ID=";
var idfield = field.ID;
idfield +=plusval;
window.location.href= thisurl+idfield+"#";
//alert(idfield);
}
},
error: function () {
//alert("Failed to get details");
}
});
}
</script>
谢谢.
sal
答
另一种选择是在创建新项目后,使用ItemAdding事件接收器将用户重定向到具有项目ID的项目编辑表单:
Another option is to use ItemAdding Event Receiver to redirect user to the item edit form with item id after creating the new item:
SPSite site = new SPSite(properties.SiteId))
{
using (SPWeb web = site.OpenWeb(properties.RelativeWebUrl))
{
SPList list = web.Lists[properties.ListId];
DisableEventFiring();
SPListItem itemToAdd = properties.ListItem;
foreach (SPField field in itemToAdd.Fields)
{
if (!field.Hidden && !field.ReadOnlyField && field != null && field.InternalName != "Attachments")
{
if (properties.AfterProperties[field.InternalName] != "")
{
itemToAdd[field.InternalName] = properties.AfterProperties[field.InternalName].ToString();
}
}
}
itemToAdd.Update();
EnableEventFiring();
// Redirect
SPUtility.Redirect("EditForm.aspx?ID=" + itemToAdd.ID, SPRedirectFlags.DoNotEndResponse, httpCurrentCtx);
}
更多信息:
从NewForm.aspx重定向到DispForm.aspx或EditForm.新创建项目的aspx
谢谢
最好的问候