آموزش Ajax بخش هشتم
راه اندازها (Triggers) :
*راه انداز غیر همگام postback (AsyncPostBackTrigger):
1- تبدیل postback ها به callback های ناهمزمان.
2- هنگامی که کنترلها بیرون UpdatePanel هستند و post back و رویدادهای اتفاق می افتد,از triggerبرای به روز رسانی استفاده می شود .
3-اگر ChildrenAsTriggers="false" , می تواند در کنترلهای داخل UpdatePanel که callback بیشتری نسبت به postback دارند, استفاده شود.
*راه انداز PostBack ((PostbackTrigger
:1- اجازه ی postback به کنترلهای داخل Updatepanel می دهد .2- به طور نمونه اجازه postback به برخی کنترلها وقتی ChildrenAsTrigger="true" باشد, میدهد.
مثالی از Trigger :
<asp:UpdatePanel ID="UpdatePanel1" Runat="server"
UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
<asp:AsyncPostBackTrigger ControlID="TreeView1"
EventName="TreeNodeExpanded" />
<asp:AsyncPostBackTrigger ControlID="TreeView1"
EventName="TreeNodeCollapsed" />
<asp:PostBackTrigger ControlID="Button2" />
</Triggers>
<ContentTemplate>
...
</ContentTemplate>
</asp:UpdatePanel>
4-Timer :
آمیختن و ترکیب کنترلهای UpdatePanel و Timer باعث پیاده سازی به روز رسانی دوره ای می شود.
رویدادهای کنترل Timer مانند Triggerها استفاده می شوند:
<asp:Timer ID="Timer1" Runat="server" Interval="5000"
OnTick="OnTimerTick" />
...
<asp:UpdatePanel UpdateMode="Conditional" ...>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" />
</Triggers> ...
</asp:UpdatePanel>
5-UpdateProgress:
این کنترل بهمراه کنترلUpdatePanel استفاده می شودو وظایفش به شرح زیر است:
1-مشخص کننده ی این است که یک Update غیر همگام درجریان است.
2-متوقف کردن یک Update غیر همگام که در جریان است.
وقتی عمل Update شروع می شود یا پس از وقفه ای UpdateProgress, به طور خودکارنمایش داده می شود.
شمای UpdateProgress :
<asp:UpdateProgress ID="UpdateProgress1" Runat="server"
DisplayAfter="milliseconds"
DynamicLayout="true|false"
AssociatedUpdatePanelID="UpdatePanelID">
<ProgressTemplate>
<!-- Declare UpdateProgress UI here -->
</ProgressTemplate>
</asp:UpdateProgress>
مثالی از UpdateProgress:
<asp:UpdateProgress DisplayAfter="500" ...>
<ProgressTemplate>
<asp:Image ID="ProgressImage" Runat="server"
ImageUrl="~/Images/SpinningClock.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
توقف عمل Update:
<asp:UpdateProgress DisplayAfter="500" ...>
<ProgressTemplate>
<b>Working...</b>
<asp:Button ID="CancelButton" Runat="server" Text="Cancel"
OnClientClick="cancelUpdate(); return false" />
</ProgressTemplate>
</asp:UpdateProgress>
<script type="text/javascript">
function cancelUpdate()
{
var obj = Sys.WebForms.PageRequestManager.getInstance();
if (obj.get_isInAsyncPostBack())
obj.abortPostBack();
}
</script>