title: Navigate Page to Page - Redirection issue
body: <p>I try to make a web app which retrieve xml datas from database.
  The database bind a first page Gridview with checkbox : 
  <a href="https://i.stack.imgur.com/DRZO0.jpg" rel="nofollow noreferrer">First page</a></p>
  
  <p>The URL of this page is <a href="http://localhost:65224/" rel="nofollow noreferrer">http://localhost:65224/</a><strong>WebForm1</strong>.aspx</p>
  
  <p>The second page redirected by the "Validate" button is the result of the selected items from the first page with more details of what you have selected : 
  <a href="https://i.stack.imgur.com/JWGKu.jpg" rel="nofollow noreferrer">Page Results</a></p>
  
  <p>I don't know why, but the URL is the same that the last one : <a href="http://localhost:65224/" rel="nofollow noreferrer">http://localhost:65224/</a><strong>WebForm1</strong>.aspx</p>
  
  <p>The last "Validate" button is to confirm what you want to update, and i want to open a new page so as to confirm what user has selected from the checkbox (a summary), but the third page is totally empty.
  And, the URL of this third page is, finally, correct : <a href="http://localhost:65224/" rel="nofollow noreferrer">http://localhost:65224/</a><strong>WebForm3</strong>.aspx</p>
  
  <p>There is a code behind for the second page, and that is why i have the results, but i don't know why the URL is not correct.</p>
  
  <p>This the code behind the "OnClick" button of the WebForm2 :</p>
  
  <pre><code>protected void btn_final_validation_Click(object sender, EventArgs e)
      {
          Response.Redirect("WebForm3.aspx");
          foreach (GridViewRow row in gvResult.Rows)
          {
  
              CheckBox cb = (CheckBox)row.FindControl("FinalChk");
              CheckBox cb2 = (CheckBox)row.FindControl("FinalChkForm");
  
              if ((cb != null &amp;&amp; cb.Checked) || (cb2 != null &amp;&amp; cb2.Checked))
              {
                  Server.Transfer("~/WebForm3.aspx");
                  //cb2.Visible = false;
                  //Response.Redirect("WebForm3.aspx");
              }
              else
              {
                  //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Veuillez sélectionner au moins un item')", true);
                  Page.ClientScript.RegisterStartupScript(this.GetType(), "Scripts", "&lt;script&gt;alert('Vous devez sélectionnere au moins 1 item.');&lt;/script&gt;");
              }
          }
  
          foreach (GridViewRow row in gvResultForm.Rows)
          {
              CheckBox cb = (CheckBox)row.FindControl("FinalChkForm2");
              if (cb != null &amp;&amp; cb.Checked)
              {
                  Server.Transfer("~/WebForm3.aspx");
              }
          }
  
          foreach (GridViewRow row in gvResultFormSelected.Rows)
          {
              CheckBox cb = (CheckBox)row.FindControl("FinalChk2");
              if (cb != null &amp;&amp; cb.Checked)
              {
                  Server.Transfer("~/WebForm3.aspx");
              }
          }
      }
  </code></pre>
  
  <p>And this the Page_Load code of the WebForm3 :</p>
  
  <pre><code>protected void Page_Load(object sender, EventArgs e)
      {
          List&lt;string&gt; test_recup = new List&lt;string&gt;();
          if (this.Page.PreviousPage != null)
          {
              GridView GridView1 = (GridView)this.Page.PreviousPage.FindControl("gvResult");
  
              foreach (GridViewRow row in GridView1.Rows)
              {
                  if (row.RowType == DataControlRowType.DataRow)
                  {
                      CheckBox chkRow = (row.Cells[0].FindControl("FinalChk") as CheckBox);
                      CheckBox chkRow2 = (row.Cells[2].FindControl("FinalChkForm") as CheckBox);
                      if (chkRow.Checked)
                      {
                          string name = row.Cells[1].Text;
                          test_recup.Add(name);
                          System.Diagnostics.Debug.WriteLine("Template selected : " + name);
                      }
                  }
              }
          }
  
          DataTable dt = new DataTable();
          dt.Columns.Add("recup_template", typeof(string));
  
          foreach (string s in test_recup)
          {
              dt.Rows.Add(s);
              System.Diagnostics.Debug.WriteLine("test : " + s);
          }
  
          GridView1.DataSource = dt;
          GridView1.DataBind();
      }
  </code></pre>