System.web.ui.timer Ontick 이전에 JavaScript를 실행하는 방법?
-
22-07-2019 - |
문제
타이머의 Ontick 이벤트가 진행될 수 있는지 확인하려면 클라이언트 측 스크립트가 필요합니다.
어떻게 호출합니까? Cancontinue () Timer1 Postback이 발생하기 전에?
사용자가 취소를 선택하면 포스트백을 취소하려면 어떻게합니까?
<%@ 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 분마다 모달 확인을 보여주는 데 문제가있을 수 있습니다. 나는 이것이 유용성으로 가난하다는 데 동의하지만, 나는 디자인을 바꿀 위치에 있지 않습니다.
업데이트 : 결국 타이머를 사용하지 않기로 결정했습니다. 보다 이 게시물 대체 솔루션에 대한 자세한 내용.
해결책 2
결국 타이머를 사용하지 않기로 결정했습니다. 보다 이 게시물 대체 솔루션에 대한 자세한 내용.
다른 팁
서버 작업을 호출하기 위해 타이머가 생성 한 메소드에 묶는 방법이 있는지 모르겠습니다. 그러나 JavaScript 구성 요소에 대한 참조를 얻고 시작/중지 또는 간격을 변경할 수 있습니다. 이를 염두에두고 원하는 기능을 얻기 위해 불쾌한 해킹을 할 수 있습니다.
예를 들어:
- 타이머에 대한 참조를 얻으십시오. (같은 것 :
$find(‘<%= Timer1.ClientID %>’);
) - 타이머를 중지하십시오.
- 동일한 간격으로 새 타이머를 만듭니다.
- 타이머를 실행하고 조건을 유발하십시오.
- 조건의 반환 값에 따라 .. 서버 생성 타이머 간격을 ~ 0으로 설정하고 시작/정지를 설정할 수 있습니다.
이것은 우아한 솔루션은 아니지만 ASP.NET 타이머를 빌드 한 적이 있다고 말할 수는 없으므로 너무 많은 통찰력을 제공 할 수 없습니다.
제휴하지 않습니다 StackOverflow