Wednesday, 15 May 2013

c# - How to make Ajax timer decrement properly in asp.net? -



c# - How to make Ajax timer decrement properly in asp.net? -

i'm working on online exam project in have show countdown till exam ends. have used next code:

aspx code:

<asp:scriptmanager id= "sm1" runat="server"></asp:scriptmanager> <asp:updatepanel id="updpnl" runat="server" updatemode="conditional"> <contenttemplate> <asp:label id="lbltimer" style=" margin-top:35px; margin-left:825px;" runat="server" font-bold="true" font-names="arial" font-size="x-large" forecolor="#6600cc"></asp:label> <div style="margin-right:25px;"> <asp:alwaysvisiblecontrolextender id="alwaysvisiblecontrolextender1" runat="server" targetcontrolid="lbltimer"> </asp:alwaysvisiblecontrolextender> <asp:timer id="timer1" runat="server" interval="1000" ontick="timer1_tick"></asp:timer> </div> </contenttemplate> <triggers> <asp:asyncpostbacktrigger controlid="timer1" eventname ="tick" /> </triggers> </asp:updatepanel>

code behind is:

protected void page_load(object sender, eventargs e) { if (!page.ispostback) { bind(); bind1(); result(); session["result"] = lblshow.text; if (!sm1.isinasyncpostback) { sqlconnection sqlc1 = new sqlconnection(strcon); sqlc1.open(); string str = "select top 1 * testcreated order id desc"; sqlcommand cmd1 = new sqlcommand(str, sqlc1); //sqlc.open(); sqldatareader dr = cmd1.executereader(); if (dr.read()) { session["timeout1"] = dr["testduration"].tostring(); } session["timeout"] datetime.now.addminutes(convert.toint32(session["timeout1"].tostring())).tostring(); } } } protected void timer1_tick(object sender, eventargs e) { if (session["timeout"] == null) session["time"] = datetime.now.addseconds(10); if (0 > datetime.compare(datetime.now, datetime.parse(session["timeout"].tostring()))) { lbltimer.text = string.format("time left: 00:{0}:{1}", ((int32)datetime.parse(session["timeout"].tostring()).subtract(datetime.now).totalminutes).tostring(), ((int32)datetime.parse(session["timeout"].tostring()).subtract(datetime.now).seconds).tostring()); }

this code working fine on local server when deployed on web server timer not counting downwards decrements 4 sec , 5 sec this.even tried changing timer interval it's not working. how can create timer countdown properly?

// add together scriptmanager , timer control. <div> <asp:scriptmanager id= "sm1" runat="server"></asp:scriptmanager> <asp:timer id="timer1" runat="server" interval="1000" ontick="timer1_tick"></asp:timer> </div> // add together update panel, //a label show time remaining , asyncpostbacktrigger. <div> <asp:updatepanel id="updpnl" runat="server" updatemode="conditional"> <contenttemplate> <asp:label id="lbltimer" runat="server"></asp:label> </contenttemplate> <triggers> <asp:asyncpostbacktrigger controlid="timer1" eventname ="tick" /> </triggers> </asp:updatepanel> </div>

this work @skoar..

more details on code project

c# asp.net ajax timer

No comments:

Post a Comment