2015-10-07 126 views
0

我是新来的ASP并陷入了一个不寻常的问题。我使用一个提交按钮,并写了一些代码,以使数据库中的变化,然后在年底在代码之前执行的Response.Redirect

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" />&nbsp;&nbsp; 
    <input type="button" value="Cancel" onclick="document.location.href='test.asp'" /> 
</div> 

现在我的问题是,每当我点击提交按钮页面直接进入test.asp而不执行上面的代码。我通过在SaveContentButton_click函数的各个位置放置ClientScript.RegisterStartupScript(this.GetType(), "On Save pagecontent Location_X", "alert('" + var2.Value + "');", true); 进行测试。每当我评论Response.Redirect时,上面的所有代码都会被执行,并且我得到所有警报,如果我取消注释,它会直接转到redirect.response,而不执行上面的任何代码,也不会显示任何警报,不会转到我将数据保存在数据库中的保存功能。

请帮忙。 在此先感谢。

回答

1

尝试

Response.Redirect("test.asp",false); 

如果你false它不会中止该线程。

更多细节约Response.Redirecthere

+0

感谢谢卡尔.....它的工作。 ...... – Prashant

+0

欢迎@Prashant –

1

如果你想重定向后,才成功地实现了在DB的变化,然后做这样的事情:

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"); 
    } 
} 
+0

谢谢Rajesh ....我还没有试过你的解决方案.... Shekhar建议的解决方案工作........ – Prashant

+0

欢迎你@Prashant ...很高兴他解决方案解决它 – Amar

相关问题