js不能够执行asp.net里的函数或者方法,你需要的是服务器的时间进行的倒计时。
首先需要一段能够执行的js进行客户端的倒计时,然后在cs文件中定义几个公共变量传到js中,如下:
<script language="javascript" type="text/javascript">
var _t;
var _h = 0;
var _m = 59-<%=currentMinute %>;
var _s = 59-<%=currentSecond %>;
var _v = formatTime(_h + ':' + _m + ':' + _s); function doTime() {
_s --;
if (_s == -1) {
_m --;
_s = 59;
}
if (_m == -1) {
_h --;
_m = 59;
}
var _b = ((_h == 0) && (_m == 0) && (_s == 0));
if (_b) {
_v = '倒计时结束';
clearTimeout(_t);
document.getElementById("btn1").click();
} else {
_v = formatTime(_h + ':' + _m + ':' + _s);
_t = setTimeout('doTime()', 1000);
}
document.all['oTime'].innerHTML = _v;
} function formatTime(_time) {
return _time.replace(/\b(\w)\b/g, '0$1');
} function startTimer() {
document.all['oTime'].innerHTML = _v;
_t = setTimeout('doTime()', 1000);
} function isStart()
{
startTimer();
}
</script>
....
<asp:Button CssClass="btnblue" ID="btn1" runat="server" Text="执行其他操作" OnClick="btn1_Click" OnClientClick="return confirm('您确定现在执行别的操作吗')" />
<span id="oTime"></span>
....cs页面
public static string startTime = System.DateTime.Now.ToString();//得到服务器当前时间
public static string endTime = System.DateTime.Now.AddHours(-1).ToString();//得到一小时后的时间
public string currentMinute = "0";//当前分钟数
public string currentSecond = "0";//当前秒数
protected void Page_Load(object sender, EventArgs e)
{
...
}
综上所述可以实现倒计时结束执行服务端程序OnClick="btn1_Click" 不过还是推荐使用ajax(开销比较大哦)来实现这些操作:
1、ajax的timer控件每秒刷新(时间panel)得到倒计时时间
2、判断倒计时结束时,弹出一个(panel或div都可以)确认框让用户选择是否继续....
首先需要一段能够执行的js进行客户端的倒计时,然后在cs文件中定义几个公共变量传到js中,如下:
<script language="javascript" type="text/javascript">
var _t;
var _h = 0;
var _m = 59-<%=currentMinute %>;
var _s = 59-<%=currentSecond %>;
var _v = formatTime(_h + ':' + _m + ':' + _s); function doTime() {
_s --;
if (_s == -1) {
_m --;
_s = 59;
}
if (_m == -1) {
_h --;
_m = 59;
}
var _b = ((_h == 0) && (_m == 0) && (_s == 0));
if (_b) {
_v = '倒计时结束';
clearTimeout(_t);
document.getElementById("btn1").click();
} else {
_v = formatTime(_h + ':' + _m + ':' + _s);
_t = setTimeout('doTime()', 1000);
}
document.all['oTime'].innerHTML = _v;
} function formatTime(_time) {
return _time.replace(/\b(\w)\b/g, '0$1');
} function startTimer() {
document.all['oTime'].innerHTML = _v;
_t = setTimeout('doTime()', 1000);
} function isStart()
{
startTimer();
}
</script>
....
<asp:Button CssClass="btnblue" ID="btn1" runat="server" Text="执行其他操作" OnClick="btn1_Click" OnClientClick="return confirm('您确定现在执行别的操作吗')" />
<span id="oTime"></span>
....cs页面
public static string startTime = System.DateTime.Now.ToString();//得到服务器当前时间
public static string endTime = System.DateTime.Now.AddHours(-1).ToString();//得到一小时后的时间
public string currentMinute = "0";//当前分钟数
public string currentSecond = "0";//当前秒数
protected void Page_Load(object sender, EventArgs e)
{
...
}
综上所述可以实现倒计时结束执行服务端程序OnClick="btn1_Click" 不过还是推荐使用ajax(开销比较大哦)来实现这些操作:
1、ajax的timer控件每秒刷新(时间panel)得到倒计时时间
2、判断倒计时结束时,弹出一个(panel或div都可以)确认框让用户选择是否继续....
然后取hidden的值试试
i值取不到 可能是作用域问题
具体 我不清楚
{
tm.Interval = TimeLimit;//TimeLimit为用户操作有效时间
tm.Elapsed += new ElapsedEventHandler(Auto_Set);
tm.Start();
tm.Enabled = true;
}
void Auto_Set(object sender, ElapsedEventArgs e)
{
//到时间执行相关操作
throw new Exception("The method or operation is not implemented.");
}