-1

しばらくしてからポストバックを生成することはできますか? たとえば、ユーザーがテキスト ボックスに入力しなければならないテキストがあります。次の 1 分間に何も入力しない場合は、ページを更新して警告などを表示する必要があります。

4

2 に答える 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 に答える