我有一个带有“服务器列表”的ListBox,它启用了AutoPostBack并附加了一个SelectedIndexChanged事件:
protected void lbServerList_SelectedIndexChanged(object sender, EventArgs e)
{
if ( lbServerList.SelectedValue.ToString() != "")
{
Response.Redirect("detail.aspx?Server=" + lbServerList.SelectedValue.ToString());
}
}
然后我有一个文本框添加一个带有“btnServertoAdd”按钮的“服务器”(以执行添加)
protected void btnServertoAdd_Click(object sender, EventArgs e)
{
Response.Redirect("add.aspx?Server=" + tbServertoAdd.Text);
}
场景:如果我从ListBox中选择一个项目,它将转到detail.aspx,显示服务器规格:真棒。 现在,如果我单击后退(浏览器按钮),然后在TextBox中键入内容并单击btnServerToAdd,它仍然会转到detail.aspx而不是add.aspx,因为它应该.... 我该如何解决这个问题?
如果需要更多代码,请告诉我。
答案 0 :(得分:0)
这是因为当您单击按钮时,所选服务器也与原始值不同(存储在视图状态中)。两个事件都被触发,但显然SelectedIndexChanged
事件先被触发,而Redirect
会跳过剩余的处理。
我想不出如何不让SelectedIndexChanged
事件第二次触发,所以你可以做的是,而不是Redirect
进入事件本身:
bool
成员变量。true
。OnLoadComplete
事件中,检查每个并根据需要重定向:
true
,请重定向至add.aspx
。true
,请重定向到相应的页面。