-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、2 回目のクリック 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

特にサイクルの4番目と5番目のイベント。

そこで探しているとおりにテキストを更新する場合は、クリックイベントハンドラーではなく、そのコードをページの読み込みに配置する必要があります。

簡単に言うと、次のように考える必要があります。リダイレクトを実行するたびに、ビューステートが失われます。

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

これは、イベントハンドラーのように、ASP.NETがコントロールの更新を追跡するための手段です。したがって、更新はすぐに失われます。

次にヒットするコードはloadイベントであるためここでラベルのtextプロパティを設定する必要があります。

response.redirectを介してラベルの値を永続化するにはどうすればよいですか?

于 2012-04-24T09:01:01.227 に答える