آموزش Ajax > کنترل های ASP.Net Ajax > معرفی کنترل Timer
آشنایی با کنترل Timer :
کنترل Timer به صورت متناوب ، در بازه زمانی تعیین شده ، صفحه را Postback می کند .
همچنین اگر این کنترل را همراه با یک کنترل UpdatePannel به کار ببرید ، می توانید
قفقط بخشی از صفحه که کنترل UpdatePannel شامل آن می شود را به صورت متناوب ، به روز
رسانی کنید .
این کنترل همچنین می تواند ، پس از گذشت مدت زمانی معین ، کل صفحه را به آدرس دیگری
Post نماید .
کاربردهای کلی کنترل Timer :
شما می توانید از کنترل Timer ، برای انجام امور زیر استفاده نمایید :
- محتویات یک یا چند کنترل UpdatePannel را بدون رفرش کردن و Postback شدن کل صفحه ،
در فواصل زمانی معین ، به روز نمایید .
- کد یا کدهای مورد نظر خود را هر بار که کنترل Timer صفحه را Postback می کند ، اجرا
نمایید .
- به صورت متناوب و در فواصل زمانی دلخواه ، کل صفحه را به سرور Post نمایید .
نحوه کار کنترل Timer :
کنترل Timer یک کنترل سرور ASP.Net است ، که برای اجرای بر روی صفحات ، یک Component
یا جزء جاوا اسکریپت
را به صفحه اضافه می کند . جزء جاوا اسکریپت درون صفحه ، پس از گذشت مدت زمان تعیین
شده در خاصیت Interval کنترل Timer ، به صورت متناوب ، صفحه را Postback می کند .
در طراحی صفحه ASP.Net ، هر خاصیتی را که برای کنترل Timer تعیین کنید ، در هنگام اجرای
صفحه توسط سرور به جزء جاوا اسکرییت مرتبط با آن در صفحه ، ارسال می شود .
برای کارکرد درست کنترل Timer ، حتما بایستی یک کنترل یا یک نمونه از کلاس ScriptManager ، بر روی صفحه وجود داشته باشد
.
هر بار که Postback توسط کنترل Timer اجرا شود ، این کنترل رویداد Tick خود را اجرا
می کند . شما می توانید ، کدهای مورد نظر خود را برای اجرای متناوب در این رویداد کنترل
، قرار دهید .
از خاصیت Interval کنترل Timer برای تعیین دوره زمانی Postback شدن کنترل و از خاصیت
Enabled آن برای روشن یا خاموش کردن آن استفاده می شود .
خاصیت Intervals بر حسب میلی ثانیه تعیین شده و مقدار پیش فرض آن 60000 میلی ثانیه
، یا 60 ثانیه است . همچنین خاصیت Enabled ، می تواند دارای یکی از دو مقدار true یا
false باشد .
نکته : تعیین مدت زمان دوره تناوب کنترل Timer به مقدار خیلی کم ،
می تواند باعث هنگ کردن صفحه و تحمیل بار اضافه به سرور شود . بنابراین ، فقط در زمانی
که نیاز دارید ، صفحه را Postback نمایید .
شما می توانید بیش از یک کنترل Timer را بر روی صفحه قرار دهید ، چنانچه لازم باشد
، کنترل های مختلف UpdatePannel ، در فواصل زمانی گوناگون به روز شوند . اما یک کنترل
Timer را می توانید برای کنترل چندین کنترل UpdatePannel ، به صورت همزمان به کار ببرید
.
استفاده از یک کنترل Timer درون یک کنترل UpdatePannel :
هنگامی که یک کنترل Timer را درون یک کنترل UpdatePannel قرار دهید ، به صورت اتوماتیک
کنترل Timer به عنوان رفرش کننده و آپدیت کننده آن عمل می کند .
شما می توانید این رفتار کنترل Timer را با قرار دادن مقدار خاصیت ChildrenAsTriggers
کنترل UpdatePannel ، بر روی مقدار false کنسل کنید .
برای کنترل Timer ای که درون یک کنترل UpdatePannel قرار دارد ، مدت زمان شمارش دوره
تناوب زمانی آغاز می شود ، که عمل Postback صفحه به طور کامل اجرا شود . بنابراین دوره
تناوب آن تا زمانی که صفحه به طور کامل از سرور باز نگردد ، شروع نمی شود .
برای مثال ، اگر دوره تناوب کنترل تایمر را 60 ثانیه تعیین کرده و انجام عمل Postback
صفحه 3 ثانیه طول بکشد ، سری بعدی دوره تناوب کنترل تایمر ، 63 ثانیه بعد خواهد بود
.
در مثال زیر ، کد قرار گرفتن یک کنترل Timer درون یک کنترل UpdatePannel را مشاهده
می کنید :
|
کد
|
<asp:ScriptManager runat="server" ID="ScriptManager1" />
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<ContentTemplate>
<asp:Timer ID="Timer1"
runat="server" Interval="12000" OnTick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
|
استفاده از یک کنترل Timer بیرون از یک کنترل UpdatePannel :
اگر کنترل Timer را بیرون از تگ کنترل UpdatePannel باشد ، شما باید صراحتا تعیین کنید
که این کنترل Timer به عنوان اجرا کننده و آپدیت کننده کنترل UpdatePannel به صورت
متناوب است .
اگر کنترل Timer بیرون کنترل UpdatePannel باشد ، دوره تناوب کنترل تایمر همزمان با
شروع عملیات Postback صفحه آغاز می شود .
برای مثال اگر دوره تناوب کنترل تایمر روی 60 ثانیه تنظیم شده باشد و عمل Postback
صفحه 3 ثانیه طول بکشد ، Postback بعدی دقیقا 60 ثانیه دیگر انجام می شود . بنابراین
کاربر محتوی جدید صفحه را فقط برای 57 ثانیه مشاهده خواهد کرد .
در مثال زیر ، کد قرار گرفتن یک کنترل Timer بیرون از یک کنترل UpdatePannel را مشاهده
می کنید :
|
کد
|
<asp:ScriptManager runat="server" ID="ScriptManager1" />
<asp:Timer ID="Timer1" runat="server" Interval="12000" OnTick="Timer1_Tick">
</asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="Timer1" EventName="Tick" />
</Triggers>
<ContentTemplate>
<asp:Label
ID="Label1" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان بگذارید :