문제

타이머의 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 구성 요소에 대한 참조를 얻고 시작/중지 또는 간격을 변경할 수 있습니다. 이를 염두에두고 원하는 기능을 얻기 위해 불쾌한 해킹을 할 수 있습니다.

예를 들어:

  1. 타이머에 대한 참조를 얻으십시오. (같은 것 : $find(‘<%= Timer1.ClientID %>’);)
  2. 타이머를 중지하십시오.
  3. 동일한 간격으로 새 타이머를 만듭니다.
  4. 타이머를 실행하고 조건을 유발하십시오.
  5. 조건의 반환 값에 따라 .. 서버 생성 타이머 간격을 ~ 0으로 설정하고 시작/정지를 설정할 수 있습니다.

이것은 우아한 솔루션은 아니지만 ASP.NET 타이머를 빌드 한 적이 있다고 말할 수는 없으므로 너무 많은 통찰력을 제공 할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top