2012-08-11 31 views
-1

經過一段時間後是否可以生成回發? 讓我們說:我有一些文字,用戶必須鍵入一個文本框。如果他沒有在未來1分鐘輸入任何東西,頁面應該是刷新顯示警告或東西經過一段時間後生成回發

+1

[你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/)你可能要找的是搜索「超時「和」自動回發「。 – TLS 2012-08-11 13:00:21

+0

@TLS - 我實際上使用'javascript timer postback',但添加auto也是不錯的選擇。 – 2012-08-11 13:03:16

回答

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> 
1

我強烈建議反對這樣的做法。您只需通知用戶或修改頁面的一部分。完成回發實在是浪費。相反,我會建議使用Ajax。也許使用JavaScript添加一個計時器,聽取所需的事件並根據需要提出Ajax請求。

+0

我同意!客戶端警告會更好 - 如果需要,還可以使用AJAX調用。爲什麼不發表一個這樣的例子? – 2012-08-11 13:48:37

+0

@ChrisGessler,有兩個原因 - 1)目前缺乏時間2)OP顯然沒有使用Google來完成至少基礎研究,否則問題會更加具體。如果我不知道他有哪些問題,我無法提供整個解決方案。你給了他一些東西,拉布給了他一些東西,如果他把這三個答案結合在一起,他應該沒問題。如果沒有,我相信他會完成他的問題。目前他問一個單一的事情 - 「這是可能的」?答案是一個簡單的「是」:) – walther 2012-08-11 13:57:16

相關問題