C# 如何使用Jquery为每个候选人设置倒计时

C# 如何使用Jquery为每个候选人设置倒计时,c#,jquery,C#,Jquery,我正在在线问答系统上工作,我必须为每个候选人显示倒计时,如3分钟,过期的用户将重定向到Result.aspx页面。 我正面临以下挑战 1.如何为每个候选人设置计数器。 2.页面刷新计数器设置为默认值。 我有以下代码 <div id="timer"> </div> <script type="text/javascript"> function countdown(minutes) { var seconds = 60;

我正在在线问答系统上工作,我必须为每个候选人显示倒计时,如3分钟,过期的用户将重定向到Result.aspx页面。 我正面临以下挑战 1.如何为每个候选人设置计数器。 2.页面刷新计数器设置为默认值。 我有以下代码

<div id="timer">

</div>
<script type="text/javascript">
        function countdown(minutes) {
            var seconds = 60;
            var mins = minutes;

            if (getCookie("minutes") && getCookie("seconds")) {
                var seconds = getCookie("seconds");
                var mins = getCookie("minutes");
            }

            function tick() {

                var counter = document.getElementById("timer");
                setCookie("minutes", mins, 10)
                setCookie("seconds", seconds, 10)
                var current_minutes = mins - 1
                seconds--;
                counter.innerHTML =
                current_minutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
                //save the time in cookie
                //minutesSpan.innerHTML = current_minutes.toString();
                //secondsSpan.innerHTML = (seconds < 10 ? "0" : "") + String(seconds);
                if (seconds > 0) {
                    setTimeout(tick, 1000);
                }
                else {
                    if (mins > 1) {
                        // countdown(mins-1);   never reach “00″ issue solved:Contributed by Victor Streithorst    
                        setTimeout(function () { countdown(mins - 1); }, 1000);
                    }
                }
            }
            tick();
        }
        function setCookie(cname, cvalue, exdays) {
            var d = new Date();
            d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
            var expires = "expires=" + d.toGMTString();
            document.cookie = cname + "=" + cvalue + "; " + expires;
        }
        function getCookie(cname) {
            var name = cname + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') c = c.substring(1);
                if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
                }
            }
            return "";
        }
        countdown(3);
    </script>

为了使事情顺利进行,你需要做两件事 1) 创建完美的倒计时方法 2) 解决重新加载依赖关系

  • 对于重新加载/刷新之前的重新加载,触发一个函数,该函数将存储从预定义倒计时开始经过的当前时间
$(window.bind('beforeunload',function()){
//下面的函数将当前经过的时间存储在cookie/本地存储器中
callFunction();
返回true;
});
private void NewCandidate()

        {

            var ClistCount = (from cl in ef.Candidate_Table where cl.Name == btnname.Text && cl.Status_Id==2 select cl).FirstOrDefault();
            if (ClistCount != null)
            {               
                string cnic = ClistCount.Cnic;            
                Session["token"] = cnic;
                Response.Redirect("MainTestForm.aspx?id=" + cnic);
            }
            else
            {
                MsgLitteral.ShowNotification("No Candidate Is Here", true);
                btnbrowse.Visible = false;
                btnname.Visible = false;
            }
        }