我在查询字符串中遇到问题。以下是我的asp代码
<asp:Label ID="Lable1" runat="server" Text="" ></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
C#代码:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Lable1.Text += Request.QueryString["refresh"] ;
Response.Redirect("QueryString1t.aspx?refresh=" + 1 + "");
}
据我所知,Lable1文本每次都会在按钮点击时更改。 Lable1文本不应该在页面加载时显示任何内容。在按钮上单击它应该像第一次单击1,第二次单击11,依此类推.. 但它没有表现出我的期望。请告诉我,我错在哪里?
答案 0 :(得分:1)
在设置标签文字后,您正在重定向,方法错误。
protected void Page_Load(object sender, EventArgs e)
{
Lable1.Text = Request.QueryString["refresh"];
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("QueryString1t.aspx?refresh=" +
string.IsNullOrEmpty(Request.QueryString["refresh"]) ? 0 :
Convert.ToInt32(Request.QueryString["refresh"]) + 1 + "");
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Lable1.Text = string.IsNullOrEmpty(Lable1.Text) ? "0" :
(Convert.ToInt32(Lable1.Text) + 1).ToString();
}
答案 1 :(得分:0)
看看这个:
http://msdn.microsoft.com/en-us/library/ms178472.aspx
特别是周期中的第四和第五个事件。
如果您希望在那里更新文本,那么您需要将该代码放在页面加载中,而不是单击事件处理程序。
简而言之,您必须这样想:每次进行重定向时,您都会失去视图状态,
http://msdn.microsoft.com/en-us/library/ms972976.aspx
这是ASP.NET跟踪控件更新的方法,就像在事件处理程序中一样。因此,您的更新会立即丢失。
您要点击的下一段代码是您的加载事件,因此 是您需要设置标签文本属性的地方。
How do I persist the value of a label through a response.redirect?