3

これは私のスクリプトです:

 <script type="text/javascript">
    $(document).ready(
    function (){

        setTimeout('myFun()', 10000);
     });

    function myFun() {
        var btn = document.getElementById('<%=myBtn.ClientID %>');
        alert(btn);
        btn.click();
     }
</script>

私のマークアップ:

<asp:UpdatePanel ID="upMain" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblValue" runat="server" Text=""></asp:Label>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="myBtn" EventName="Click" />
     </Triggers>
</asp:UpdatePanel>
<asp:Button ID="myBtn" runat="server" Text="hit" />

コードビハインド:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        lblValue.Text = "0";
    }
    else
    {
        lblValue.Text = Convert.ToString(Convert.ToInt32(lblValue.Text) + 1);
    }
}

10秒ごとにupdatepanelを更新する必要があります。しかし、ページの読み込み後、それを達成できるのは一度だけです。足りないものはありますか?ありがとう。

4

5 に答える 5

0

削除if (!IsPostBack)、このため、一度だけ更新され、

于 2012-10-17T03:10:47.380 に答える
0

IsPostBackは、ページがそれ自体にポストバックされたことを意味します

!IsPostBackは、ページを最初にロードしたときに、ページを更新しただけで、それ自体からの投稿ではなかったことを意味します

于 2012-10-17T03:26:06.677 に答える
0

代わりにAJAXタイマーコントロールを使用してみませんか。それは、きちんと、簡潔で、効率的な方法で同じ目的を果たします。

とにかく、setTimeout()とsetInterval()はどちらも同じように機能します。

主な違いは次のとおりです。

  • setTimeoutは、指定された期間待機し、指定されたコードを実行してから停止します。
  • 一方、setIntervalは、待機してコードを実行し、次に再度待機してコードを再度実行し、永久に(または停止するように指示するまで)繰り返します。

簡単に言うと、setTimeout()は、指定された間隔の後に指定されたコードを1回だけ実行しますが、setInterval()は、指定された間隔の後にコードを繰り返し実行します。

したがって、以下を使用します。

<script type="text/javascript">     
$(document).ready(    
     function ()
     {          
             setInterval('myFun()', 10000);      
     });
     function myFun() 
     {         
             var btn = document.getElementById('<%=myBtn.ClientID %>');         
             alert(btn);
             btn.click();      
     } 
</script> 

出典:jQuery-初心者から忍者

于 2012-10-17T03:55:27.377 に答える
0

AJAXタイマーコントロールを試してみませんか?これは、一定の間隔でポストバックする簡単な方法です。

于 2012-10-17T05:25:54.777 に答える
0

試す

   __dopostback('<%=myBtn.UniqueID%>',0);

クリックの代わり

 var btn = document.getElementById('<%=myBtn.ClientID %>');         
             btn.click();   
于 2012-10-17T05:35:35.917 に答える