2015-10-07 3 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; 

     } 

    }` 

и моя кнопка Защиту является

<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 без выполнения кода над ним в функции. Я проверил, поставив ClientScript.RegisterStartupScript(this.GetType(), "On Save pagecontent Location_X", "alert('" + var2.Value + "');", true); в разных местах в функции SaveContentButton_click. Всякий раз, когда я комментирую Response.Redirect, все вышеприведенные коды запускаются, и я получаю все предупреждения, и если я раскомментирую это, он переходит непосредственно к redirect.response, не выполняя ни один из вышеперечисленного кода и не отображая никаких предупреждений, а также не переходит к функции сохранения, когда я сохраняю данные в базе данных.

Пожалуйста, помогите. Спасибо заранее.

ответ

1

Попробуйте

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

Если вы false не прервет нить.

Более подробно о Response.Redirect является here

+0

Спасибо Шекхар ..... Он работал. ...... – Prashant

+0

добро пожаловать @Prashant –

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

Спасибо Rajesh .... я не пробовал ваше решение .... решение, предложенное Shekhar, работало ........ – Prashant

+0

Ваш прием @Prashant ... Рад его решение разрешило это – Amar

 Смежные вопросы

  • Нет связанных вопросов^_^