در ادامه مبحث کنترل های asp.net در تکنولوژی ajax به یک کنترل دیگر می رسیم .در مطالب قبلی در مورد کنترل UpdatePannel آشنایی های اولیه و مقدمات را برایتان شرح دادیم.در این مطلب می خواهیم تا با نحوه کار این کنترل بیشتر آشنا شویم.
کنترل UpdatePannel ، با جدا کردن بخش مورد نظر از صفحه ، در هنگام به روز رسانی خود ، فقط آن بخش یا بخش های مرتبط را آپدیت کرده و مانع رفرش شدن و Postback کل صفحه می شود .این کار به وسیله یک کنترل ScriptManager و کلاس PageRequestManager در صفحه انجام می شود .
در این حالت آپدیت صفحه فقط به بخش یا بخش هایی محدود می شود ، که درون کنترل UpdatePannel بوده و برای ارسال کد مشخص شده اند . مرورگر فقط محتویات آن بخش را برای سرور ارسال می کند ، سپس سرور درخواست را بررسی کرده و جواب آن را حاضر می کند . در آخر جواب حاضر شده به صفحه برگردانده شده و به وسیله متدهای DOM در بخش های HTML مورد نظر اعمال می شود .
مثال زیر ، انجام روند اجرای یک صفحه از ابتدا و سپس آپدیت شدن بخش قرار گرفته در کنترل UpdatePannel را به صورت یک دیاگرام نشان می دهد :
فعال کردن به روز رسانی بخشی ( partial-page update ) در صفحه :
کنترل UpdatePannel ، برای کارکرد صحیح در صفحه ، به یک کنترل ScriptManager نیاز دارد . به صورت پیش فرض ، به روز رسانی بخشی صفحه فعال است ، زیرا مقدار خاصیت EnablePartialRendering کنترل ScriptManager بر روی true تنظیم شده است .
کد زیر ، نحوه تعریف و استفاده از یک کنترل ScriptManager و UpdatePannel را به صورت همزمان نشان می دهد . کنترل UpdatePannel شامل یک دکمه فرمان است که در هنگام کلیک بر روی آن ، محتویات درون UpdatePannel به روز می شود .
به صورت پیش فرض مقدار خاصیت ChildrenAsTriggers کنترل UpdatePannel بر روی مقدار true تنظیم شده و همین باعث می شود تا کلیک بر روی دکمه فرمان که یک کنترل فرزند UpdatePannel است ، باعث آپدیت محتویات آن شود .
</”asp:Button ID=”Button1″ Text=”Refresh Panel” runat=”server>
</”asp:ScriptManager ID=”ScriptManager1″ runat=”server>
<“asp:UpdatePanel ID=”UpdatePanel1″ UpdateMode=”Conditional” runat=”server>
<Triggers>
</” asp:AsyncPostBackTrigger ControlID=”Button1>
</Triggers>
<ContentTemplate>
<fieldset>
<legend>UpdatePanel content</legend>
<%()DateTime.Now.ToString=%>
<fieldset/>
<ContentTemplate/>
<asp:UpdatePanel/>