-1

我在查询字符串中遇到问题。以下是我的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 等等。但它没有按我的预期显示。所以请告诉我我哪里错了?

4

2 回答 2

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();  
}
于 2012-04-24T08:58:31.050 回答
0

看看这个:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

特别是循环中的第四和第五个事件。

如果您希望在查找时更新文本,那么您需要将该代码放在页面加载中,而不是单击事件处理程序中。

简而言之,您必须这样考虑:每次进行重定向时,您都会丢失视图状态,

http://msdn.microsoft.com/en-us/library/ms972976.aspx

这是 ASP.NET 跟踪控件更新的方法,就像在事件处理程序中一样。因此,您的更新会立即丢失。

您将要命中的下一段代码是您的 load 事件,因此您需要在其中设置标签的 text 属性。

如何通过 response.redirect 保留标签的值?

于 2012-04-24T09:01:01.227 回答