0

aspx ページにボタンと 2 つのラベルがあり、ラベルにテキストを表示し、数秒後にボタンのクリック時に 2 番目のラベルに別のテキストを入力したい 私のコードは ソース ファイルです

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
<asp:Label ID="lblFirst" runat="server" Text=""></asp:Label> 
 <asp:Label ID="lblSecond" runat="server" Text=""></asp:Label>
<asp:Button ID="btnFirst" runat="server" Text="First" 
            onclick="btnFirst_Click" />
 </ContentTemplate>
        </asp:UpdatePanel>

コードファイル

    protected void btnFirst_Click(object sender, EventArgs e)
            {
                first();
                second();
            }
            private void first()
            {
                I am Calling a method form my class file which returns a string , and assigning to label first
//class1 obj=new class1();
//string result=obj.first()
           // lblFirst.Text =result;
            }
            private void second()
            {
                   I am Calling a method form my class file which returns a string , and assigning to label Second
//class2 obj=new class2();
//string result1=obj.Second()             
                lblSecond.Text = result1;
            }

2 つの応答を取得しています。2 番目の応答を待たずに最初に取得したものを表示したいと思います。2 番目の応答を取得した後、最初の応答を失うことなくすぐに表示する必要があります。緊急の提案をお願い します。そのような出力を取得する他の手順はありますか

ありがとうございます

4

1 に答える 1

3

サーバー コードでそのような遅延を行うことはできません。サーバー コードがページをレンダリングするまで、ページはブラウザーに送信されません。これは、コントロール イベントの後に発生します。コードは 7 秒間待機するだけで、ページをレンダリングしてブラウザーに送信します。

求めているエクスペリエンスを得るには、クライアント側のコードを使用する必要があります。Web ページがブラウザーに送信された後、サーバーは Web ページに変更をプッシュできません。

protected void btnFirst_Click(object sender, EventArgs e) {
  string code =
    "window.setTimeout(function(){document.getElementById('" + lblFirst.ClientID + "').innerHTML='first filled'},1000);"+
    "window.setTimeout(function(){document.getElementById('" + lblSecond.ClientId + "').innerHTML='Second filled'},7000);";
  Page.ClientScript.RegisterStartupScript(this.GetType(), "messages", code, true);
}
于 2012-06-04T07:25:39.647 に答える