Regarding (count down) timer for application in asp.net c# -
hi have created online quiz. have added count-down timer,label question & radiobuttonlist answers , next button next question. have code timer timer gets start again when click next button want count down timer whole questions(quiz). count down timer code(javascript) follows:
var hour=0; //specify hours counter var min= '<%= session["timer"] %>'; // specify minutes var second = '<%= session["second"] %>'; // specify seconds var lab = 'cd'; // id of entry on page counter(for question) inserted & cd span id in aspx page displaying countdown timer function start() { displaycountdown(setcountdown(hour,min,second),lab); } loaded(lab,start); var pageloaded = 0; window.onload = function() {pageloaded = 1;} function loaded(i,f) { if (document.getelementbyid && document.getelementbyid(i) != null) f(); else if (!pageloaded) settimeout('loaded(\''+i+'\','+f+')',100); } function setcountdown(hour,min,second) { if(hour>0) min=min*hour*60; c = setc(min,second); return c; } function setc(min,second) { if(min>0) second=min*60*second; return math.floor(second); } function displaycountdown(countdn,cd) { if (countdn < 0) { document.getelementbyid(cd).innerhtml = "sorry, late."; __dopostback('__page'); } else { var secs = countdn % 60; if (secs < 10) secs = '0'+secs; var countdn1 = (countdn - secs) / 60; var mins = countdn1 % 60; if (mins < 10) mins = '0'+mins; countdn1 = (countdn1 - mins) / 60; var hours = countdn1 % 24; document.getelementbyid(cd).innerhtml = hours+' : '+mins+' : '+secs; settimeout('displaycountdown('+(countdn-1)+',\''+cd+'\');',999); } }
you must keep reference on "present" time relatively of "start" time , duration of quiz. so, substract "present" time start time.
protected int hoursduration { { if (session["hoursduration"] == null) { session["hoursduration"] = 0; } return convert.toint32(session["hoursduration"]); } set { session["hoursduration"] = value; } } protected int minutesduration { { if (session["minutesduration"] == null) { session["minutesduration"] = 0; } return convert.toint32(session["minutesduration"]); } set { session["minutesduration"] = value; } } protected int secondsduration { { if (session["secondsduration"] == null) { session["secondsduration"] = 0; } return convert.toint32(session["secondsduration"]); } set { session["secondsduration"] = value; } } protected int hoursleft { { return (this.endtime - this.begintime).hours; } } protected int minutesleft { { return (this.endtime - this.begintime).minutes; } } protected int secondsleft { { return (this.endtime - this.begintime).seconds; } } protected datetime endtime { { if (session["endtime"] == null) { session["endtime"] = datetime.now; } return convert.todatetime(session["endtime"]); } set { viewstate["endtime"] = value; } } protected datetime begintime { { if (session["begintime"] == null) { session["begintime"] = datetime.now; } return convert.todatetime(session["begintime"]); } set { viewstate["begintime"] = value; } } protected override void oninit(eventargs e) { this.begintime = datetime.now; // present time if (!ispostback) { // countdown this.hoursduration = 0; this.minutesduration = 10; this.secondsduration = 0; // on !postback, set when ends this.endtime = this.begintime.addhours(this.hoursduration) .addminutes(this.minutesduration) .addseconds(this.secondsduration); } base.oninit(e); } then, in javascript, call hoursleft, minutesleft , secondeleft. think should work.
Comments
Post a Comment