我尝试制作一个从数据库中检索xml数据的Web应用程序。 数据库将第一页Gridview绑定到复选框: First page
此页面的网址为http://localhost:65224/ WebForm1 .aspx
“验证”按钮重定向的第二页是第一页中所选项目的结果,其中包含您所选内容的更多详细信息: Page Results
我不知道为什么,但网址与上一个网址相同:http://localhost:65224/ WebForm1 .aspx
最后一个“验证”按钮用于确认您要更新的内容,我想打开一个新页面以确认用户从复选框中选择了什么(摘要),但第三页完全为空。 并且,此第三页的网址最终是正确的:http://localhost:65224/ WebForm3 .aspx
第二页背后有一个代码,这就是为什么我有结果,但我不知道为什么网址不正确。
这是WebForm2的“OnClick”按钮背后的代码:
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 && cb.Checked) || (cb2 != null && 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", "<script>alert('Vous devez sélectionnere au moins 1 item.');</script>");
}
}
foreach (GridViewRow row in gvResultForm.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("FinalChkForm2");
if (cb != null && cb.Checked)
{
Server.Transfer("~/WebForm3.aspx");
}
}
foreach (GridViewRow row in gvResultFormSelected.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("FinalChk2");
if (cb != null && cb.Checked)
{
Server.Transfer("~/WebForm3.aspx");
}
}
}
这是WebForm3的Page_Load代码:
protected void Page_Load(object sender, EventArgs e)
{
List<string> test_recup = new List<string>();
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();
}
答案 0 :(得分:0)
Server.Transfer
在服务器上重定向。即客户端上的URL不反映服务器返回的实际页面。如果您希望客户端知道重定向已经发生,请将其更改为Response.Redirect
。