是否可以在一段时间后生成回发?假设:我有一些用户必须在文本框中输入的文本。如果他在接下来的 1 分钟内没有输入任何内容,则应刷新页面并显示警告或其他内容
问问题
1615 次
2 回答
2
这篇文章应该会有所帮助: http: //www.codeproject.com/Articles/12293/Auto-postback-in-ASP-NET
但是,您必须集成自己的业务逻辑来回发,或者不是因为您没有包含源代码。但是,此示例包含一个StopTheClock()
方法,因此您可能希望将某种“OnChange”事件附加到文本框,以在值不为空时停止时钟。
另一种方法是在每个刻度之后(在这种情况下为 1 秒)和回发之前(form.submit)检查文本框的值,然后如果 textbox.value 不为空,则简单地停止计时器。
<script language="JavaScript" type="text/javascript">
<!--
// Script to generate an automatic postBack to the server
var secs
var timerID = null
var timerRunning = false
var delay = 1000
function InitializeTimer()
{
// Set the length of the timer,
// in seconds. Your choise
secs = 5
StopTheClock()
StartTheTimer()
}
function StopTheClock()
{
if(timerRunning)
clearTimeout(timerID)
timerRunning = false
}
function StartTheTimer()
{
if (secs==0)
{
StopTheClock()
//Generate a Postback to the server
document.forms[0].submit()
}
else
{
secs = secs - 1
timerRunning = true
timerID = self.setTimeout("StartTheTimer()", delay)
}
}
//-->
</script>
<body onload="InitializeTimer()">
<form id="form1" runat="server">
<div>
The time is: <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
于 2012-08-11T13:00:41.847 回答
1
我强烈建议反对这样的方法。您所需要的只是通知用户或修改页面的一部分。完整的回发真的很浪费。相反,我建议使用 Ajax。也许使用 javascript 添加一个计时器,侦听所需的事件并根据需要引发 ajax 请求。
于 2012-08-11T13:15:17.127 回答