【问题标题】:Generate a postback after some time has passed一段时间后生成回发
【发布时间】:2012-08-11 12:52:48
【问题描述】:

是否可以在一段时间后生成回发? 假设:我有一些用户必须在文本框中输入的文本。如果他在接下来的 1 分钟内没有输入任何内容,则应刷新页面并显示警告或其他内容

【问题讨论】:

  • What have you tried? 您可能正在寻找“超时”和“自动回发”的搜索结果。
  • @TLS - 我实际上使用了“javascript timer postback”,但添加 auto 也是一个不错的选择。

标签: c# javascript asp.net postback


【解决方案1】:

这篇文章应该有帮助: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>

【讨论】:

    【解决方案2】:

    我强烈建议不要使用这样的方法。您所需要的只是通知用户或修改页面的一部分。完整的回发真的很浪费。相反,我建议使用 Ajax。也许使用 javascript 添加一个计时器,侦听所需的事件并根据需要引发 ajax 请求。

    【讨论】:

    • 我同意!客户端警告会更好 - 如果需要,还可以调用 AJAX。为什么不发布一个这样的例子呢?
    • @ChrisGessler,有两个原因 - 1.) 目前时间不足 2.) OP 显然没有使用 Google 进行至少基础研究,否则问题会更多具体的。如果我不知道他的哪个部分有问题,我无法提供完整的解决方案。你给了他一些东西,Rab 给了他一些东西,如果他把这三个答案结合在一起,他应该没问题。如果没有,我相信他会完成他的问题。目前他只问一件事——“这可能吗”?答案是简单的“是”:)
    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多