我是ASP的新手并且遇到了一个不寻常的问题。我正在使用提交按钮并编写一些代码以在数据库中进行更改,然后在最后打开一个新页面
protected void SaveContentButton_Click(object sender, EventArgs e)
{
if (contentid == 0 )
{
pageCntnt = new content();
}
//value from DropDownList.
pageCntnt.var1 = int.Parse(this.var1.SelectedValue);
pageCntnt.var2 = objCntnt.Text.Trim();
pageCntnt.var3 = objCntnt.Text.Trim();
//Save in the db.
pageCntnt.Save();
//Redirect to test.asp.
Response.Redirect("test.asp");
}
protected void Page_Load(object sender, EventArgs e)
{
contentstring = Request.QueryString["cntntstr"] != null ? Utilities.ToInt32(Request.QueryString["cntntstr"].ToString()) : 0;
if (contentstring > 0)
{
//Get the value from DB
pagecntnt = content.SelectByContentid(contentstring);
}
if (pagecontent != null && !Page.IsPostBack)
{
this.siteid.DataBind();
this.siteid.Items.FindByValue(pagecntnt.var1.ToString()).Selected = true;
TxtBx1.Text = pagecntnt.var2;
TxtBx2.Text = pagecntnt.var3;
}
}`
我的按钮def是
<div class="floatright">
<asp:Button ID="SaveContent" runat="server" OnClick="SaveContentButton_Click" Text="Submit" />
<input type="button" value="Cancel" onclick="document.location.href='test.asp'" />
</div>
现在我的问题是每当我点击提交按钮页面直接转到test.asp而不执行函数上面的代码。我通过ClientScript.RegisterStartupScript(this.GetType(), "On Save pagecontent Location_X", "alert('" + var2.Value + "');", true);
测试
在SaveContentButton_click
函数的各个地方。每当我评论Response.Redirect时,所有上面的代码都会被执行并且我得到所有警报,如果我取消注释,它会直接转到redirect.response,而不执行上面的任何代码,也不显示任何警报。不会转到我在数据库中保存数据的保存功能。
请帮助。 提前谢谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您在成功进行数据库更改后尝试重定向,请执行以下操作:
protected void SaveContentButton_Click(object sender, EventArgs e)
{
bool blnResult = false;
if (contentid == 0 )
{
pageCntnt = new content();
}
//value from DropDownList.
pageCntnt.var1 = int.Parse(this.var1.SelectedValue);
pageCntnt.var2 = objCntnt.Text.Trim();
pageCntnt.var3 = objCntnt.Text.Trim();
//Save in the db.
blnResult = convert.toBoolean(pageCntnt.Save());
//Here i have converted save method into Boolean type so now its going to return True/False
if(blnResult) //Redirect only when blnResult is true
{
//Redirect to test.asp.
Response.Redirect("test.asp");
}
}