2012-01-07 8 views
0

私は、スクリプトマネージャを使用するマスターページを持っています。別のページでは、0から10分までカウントするデジタル時計を表示します。 asp.netコード:タイマーを使ってカントを更新するラベル

<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"> 
</asp:ScriptManagerProxy> 
<asp:Timer ID="Timer1" runat="server" Interval="5000" ontick="Timer1_Tick"> 
    </asp:Timer>  
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
</Triggers> 
<ContentTemplate> 
<asp:Label ID="Label1" runat="server" Text=""></asp:Label> 
</ContentTemplate> 
</asp:UpdatePanel> 

C#コード:

int min=0,sec=0; 
protected void Timer1_Tick(object sender, EventArgs e) 
{ 
    if (sec == 55) 
    { 
     min = min + 1; 
     sec = 0; 
    } 
    else 
    { 
     sec = sec + 5; 
    } 
    Label1.Text = min.ToString() +":"+ sec.ToString(); 
    if(min==10&&sec==0) 
    { 
     Timer1.Enabled=false; 
     Label1.Text = "clock over!"; 
    } 

ページは0から始まる:5と全く変わりません。 dコードにエラーがある場合、plsは指摘します!

答えて

1

私の賭けは、あなたのアップデートパネルになるということです。デバッグの目的で、すべてのupadteパネルなし

  1. トライのために - それは動作しません
  2. 更新パネルでタイマーを入れて、2はとにかく行うことができるという点では、トリガ

忘れます - 私はポストバックトリガーとしてそれを持つ利点の確かではない。それは正直なところ、私はこれをしないだろうしかし

内部タイマーと全く同じように行うだろう。 Tickメソッドは、タイマーの表示を行うためにポストバック(部分的ですが)を実行しません。

純粋にクライアント側で実行される多くの自由に利用可能なコンポーネントがあります。

JQuery Timer

EDIT

実は私は、問題を発見したと思います。分と秒を記録する方法です。これらは変数であり、ポストバックごとにリセットされます(Timer tick)。 Youuは、ポストバックポストバックなどのものにそれらを格納する必要があります。 ViewState

protected void Timer1_Tick(object sender, EventArgs e) { 

    ViewState["min"] //not int min 
    ViewState["sec"] //not int sec 

    //.. you would need to use Convert (or Int32.Parse) to get 
    //.. then as an int to work with 

} 

しかし、残念ながら - それでもやりません。 JQueryコンポーネントなどを使用してください

+0

ちょっと、アドバイスありがとうございます。私はJavaScript関数を使用していますが、唯一の問題は、タイマの値が10:00で、同じページに2リダイレクトしたいのでフォームに値を送信したくない場合にC#関数をトリガしたいということです。 thtについての任意のアイデア? –

+0

@ YashUpadhyay JavaScript/JQueryからasp.netサーバーサイドイベントをトリガーする必要があります。リンクhttp://stackoverflow.com/questions/8771097/raise-server-side-button-click-event-from-javascript-in-ajax-call/8771155#8771155は、それを行う方法の本当に良い説明を与えます(私の答えではない - 他の人たち) –

関連する問題