سؤال

أحتاج إلى برنامج نصي من جانب العميل للتأكد من إمكانية متابعة حدث Timer's OnTick.

كيف أدعو يستطيع الاستمرار() قبل حدوث إعادة النشر Timer1؟
كيف يمكنني إلغاء إعادة النشر إذا قام المستخدم بتحديد إلغاء؟

<%@ 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

وقررت عدم استخدام الموقت بعد كل شيء. انظر هذا المنصب للحصول على تفاصيل عن حل بديل.

نصائح أخرى

لا أعرف ما إذا كانت هناك طريقة للربط بالطريقة التي أنشأها المؤقت لاستدعاء إجراء الخادم.ومع ذلك، يمكنك الحصول على مرجع لمكون جافا سكريبت وبدء/إيقاف أو تغيير الفاصل الزمني.مع وضع ذلك في الاعتبار، يمكنك القيام ببعض عمليات القرصنة السيئة للحصول على الوظيفة التي تريدها.

على سبيل المثال:

  1. الحصول على إشارة إلى الموقت الخاص بك.(شيء مثل: $find(‘<%= Timer1.ClientID %>’);)
  2. أوقف الموقّت.
  3. قم بإنشاء مؤقت جديد بنفس الفاصل الزمني.
  4. تنفيذ الموقت الخاص بك والتسبب في هذه الحالة.
  5. على حسب قيمة الإرجاع لحالتك..يمكنك ضبط الفاصل الزمني للمؤقت الذي أنشأه الخادم على ~0 والبدء/الإيقاف.

هذا ليس حلاً أنيقًا، لكن لا يمكنني القول إنني عملت من قبل مع مؤقتات asp.net المضمنة، لذا لا يمكنني تقديم الكثير من الأفكار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top