آموزش برنامه نویسی ، پایگاه داده sql server
آموزشگاه برنامه نویسی تحلیل داده : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server


آموزشگاه برنامه نویسی مجتمع فنی تهران میرداماد : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server

آموزش ASP.Net > کنترل های Ajax > کنترل UpdatePanel

آشنایی با کنترل UpdatePannel :

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

نحوه کار کنترل 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>

تعیین محتویات برای کنترل UpdatePannel :

می توانید محتویات درونی را برای کنترل UpdatePannel به صورت مستقیم در بخش کد وارد کرده و یا از ابزار ContentTemplate در ویرایشگر ویژوال استودیو استفاده کنید .
محتویات کنترل UpdatePannel ، درون تگ باز و بسته <ContentTemplate> آن ، قرار می گیرد . برای اضافه کردن محتویات در حین اجرا و به صورت برنامه ریزی شده ، بایستی از خاصیت ContentTemplateContainer کنترل استفاده نمایید .

تعیین کنترل یا کد برای فعال کردن به روز رسانی در کنترل UpdatePannel :

به صورت پیش فرض ، هر کنترل درون کنترل UpdatePannel که قابلیت  Postback  داشته باشد ، در هنگام تغییر ، باعث رفرش شدن و آپدیت محتویات درونی کنترل UpdatePannel می شود .
همچنین می توانید کنترل دیگری که خارج از کنترل 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 تعیین می شود . ( در محیط ویژوال استودیو می توانید برای کنترل مورد نظرتان ، trigger هایی را به وسیله پنجره UpdatePanelTrigger Collection Editor ایجاد نمایید ) .

کنترل های UpdatePannel چگونه رفرش می شوند :

لیست زیر تعیین می کند که چگونه و چه زمانی کنترل UpdatePannel رفرش شود :

  • اگر مقدار خاصیت UpdateMode را روی Always تنظیم کنید ، کنترل UpdatePannel با هر Postback ای ، از هر نقطه یا کنترلی در صفحه رفرش می شود . این مسله شامل تمام کنترل هایی که چه درون UpdatePannel هستند یا بیرون آن ، صدق می کند .
  • اگر مقدار خاصیت UpdateMode را روی Conditional کفه مقدار پیش فرض است ، فقط در حالات زیر محتویات کنترل به روز می شود :
    • هنگامی که یک Postback یا trigger برای کنترل UpdatePannel فعال شود .
    • هنگامی که به صورت مستقیم رویداد Update کنترل UpdatePannel را فراخوانی نمایید .
    • هنگامی که کنترل UpdatePannel در یک کنترل دیگر UpdatePannel قرار دارد و کنترل مادر parent آن ، به روز می شود .
    • هنگامی که مقدار خاصیت ChildrenAsTriggers کنترل روی true تنظیم شده باشد و یک کنترل فرزند درونی آن عمل Postback را انجام دهد .


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1