2015-10-07 108 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

相關問題