タイマーの OnTick イベントが続行できることを確認するために、クライアント側のスクリプトが必要です。
Timer1 ポストバックが発生する前にCanContinue()を呼び出すにはどうすればよいですか?
ユーザーが [キャンセル] を選択した場合、ポストバックをキャンセルするにはどうすればよいですか?
<%@ Page Language="C#" %>
<script runat="server">
protected void Timer1_OnTick(object sender, EventArgs e)
{
Response.Write("Last Postback: " + DateTime.Now.ToString());
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Timer Test</title>
<script type="text/javascript" language="javascript">
function CanContinue() {
return confirm('The page is requesting new data. Ok or Cancel?');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_OnTick" Interval="300000" />
</form>
</body>
</html>
注: 一部の読者は、x 分ごとにモーダル確認を表示することに問題を起こすかもしれません。これが使いやすさに欠けることには同意しますが、デザインを変更する立場にはありません。
更新: 結局、タイマーを使用しないことにしました。代替ソリューションの詳細については、この投稿を参照してください。