کنترل UpdatePanel

10 / 10
از 1 کاربر

در این قسمت از مقالات طراحی سایت و در بخش آموزش Ajax ، می خواهیم نحوه ی کار با کنترل UpdatePannel را برای شما توضیح دهیم .
از کنترل updatepannel هنگامی استفاده می کنیم که بخواهیم فقط قسمت خاصی از صفحه را آپدیت کرده و به جای کل صفحه فقط قسمتی که تغییر در آن اعمال شده رفرش شود . برای انجام این کنترل باید از کنترل scriptmanager بر روی صفحه و بدون نیاز به هیچ کدنویسی استفاده کرد .

کنترل UpdatePannel ، با جدا کردن بخش مورد نظر از صفحه ، در هنگام به روز رسانی خود ، فقط آن بخش یا بخش های مرتبط را آپدیت کرده و مانع رفرش شدن و Postback کل صفحه می شود .این کار به وسیله یک کنترل ScriptManager و کلاس PageRequestManager در صفحه انجام می شود . پس از ارسال دستورات به سرور ، سرور درخواست را بررسی می کند و جواب را حاضر می کند که این جواب به صفحه برگردانده می شود وبه وسیله متدهای DOM در بخش های HTML مورد نظر اعمال می شود .

دستور زیرنحوه تعریف و استفاده از یک کنترل 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>

همچنین محتویات درونی را برای کنترل updatepannel به صورت مستقیم در بخش کد وارد کنید و یا از contenttemplate در ویژوال استودیو استفاده کنید .محتویات این کنترل درون تگ contenttemplate قرار می گیرد . همچنین می توانید کنترل دیگری که خارج از کنترل UpdatePannel وجود دارد را نیز ، برای رفرش کردن آن تنظیم نمایید . این کار با تعیین یک trigger برای کنترل UpdatePannel انجام می شود . trigger ، کنترل یا رویدادی است که باعث می شود تا محتویات درون کنترل UpdatePannel رفرش شود . برای مثال یک دکمه فرمان . کد زیر نشان می دهد که چگونه یک دکمه فرمان را برای رفرش کردن محتویات یک کنترل 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>

همچنین trigger به وسیله تگ <asp:AsyncPostBackTrigger> درون المنت <Triggers> کنترل UpdatePannel تعیین می شود .توجه داشته باشید که اگر مقدار کنترل updatemode روی always قرار گیرد ، کنترل updatepannel با هر postback این ویژگی  در همه ی مواقع صدق می کند اما هنگامیکه مقدار خاصیت updatemode روی conditional قرار گیرد فقط در موارد زیر کنترل به روز خواهد شد :
√ هنگامی که یک Postback یا trigger برای کنترل UpdatePannel فعال شود .
√ هنگامی که به صورت مستقیم رویداد Update کنترل UpdatePannel را فراخوانی نمایید .
√ هنگامی که کنترل UpdatePannel در یک کنترل دیگر UpdatePannel قرار دارد و کنترل مادر parent آن ، به روز می شود .
√ هنگامی که مقدار خاصیت ChildrenAsTriggers کنترل روی true تنظیم شده باشد و یک کنترل فرزند درونی آن عمل Postback را انجام دهد .

ارسال نظر و نظرات ثبت شده