مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آموزش کامل کار با کنترل AJAX در ASP.NET


کنترل AJAX

AJAX مخفف عبارت Asynchronous JavaScript and XML می باشد. AJAX یک تکنولوژی cross platform می باشد که زمان پاسخ دهی را سرعت می بخشد. کنترل های سرور AJAX ، اسکریپتی به صفحه اضافه می کنند که توسط مرورگر اجرا و پردازش می شود.

با این وجود ، همانند سایر کنترل های سرور ASP.NET ، کنترل های سرور AJAX نیز می تواند متدها و هندلرهای رویداد مرتبط با آنها را دارا باشد که در سمت سرور پردازش می شوند.

جعبه ابزار control در Visual Studio IDE حاوی گروهی از کنترل ها می باشد که  'AJAX Extensions' نامیده می شوند.

کنترل ScriptManager

کنترل ScriptManager از مهم ترین کنترل ها می باشد و باید در صفحه موجود باشد تا با سایر کنترل ها کار نماید.

قاعده نوشتاری این کنترل به صورت زیر می باشد:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

اگر ما بخواهیم که یک سایت 'Ajax Enabled site' را بسازیم ، یا یک فرم 'AJAX Web Form' را از جعبه محاوره ای 'Add Item' اضافه نماییم ، فرم وب به طور خودکار حاوی کنترل ScriptManager خواهد بود. کنترل ScriptManager از اسکریپت های سمت کلاینت برای تمام کنترل های سمت سرور حمایت می کند.

کنترل UpdatePanel

کنترل UpdatePanel ، یک کنترل container می باشد و از کلاس Control مشتق شده است. این کنترل به عنوان یک ظرف (container) برای کنترل های فرزند داخلش عمل می کند و رابط کاربری خاصی برای خود ندارد. هنگامی که یک کنترل درون آن ، پستی را به صورت post back ارسال می کند ، کنترل UpdatePanel مداخله می کند تا ارسال پست را به صورت نامتقارن (asynchronously) شروع کرده و فقط آن بخش از صفحه را به روز نماید.

برای مثال ، وقتی که یک کنترل button در داخل پنل به روز رسانی شده و کلیک شود ، فقط کنترل های درون پنل آپدیت شده ، تحت تأثیر قرار خواهند گرفت و کنترل های سایر بخش های صفحه تحت تأثیر قرار نخواهند گرفت. به این عمل partial post back یا asynchronous post back گفته می شود.

مثال

یک فرم وب AJAX به برنامه کاربردی خود اضافه می کنیم. این فرم ه طور پیش فرض حاوی کنترل script manager می باشد. یک پنل update وارد می کنیم. یک کنترل button همراه با کنترل label درون کنترل پنل update جای می دهیم. مجموعه ای از کلید و برچسب را در خارج پنل قرار می دهیم.

Design view این مال باید مطابق تصویر زیر باشد:

کد فایل source به صورت زیر می باشد:

<form id="form1" runat="server">
   <div>
      <asp:ScriptManager ID="ScriptManager1" runat="server" />
   </div>
   
   <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
         <asp:Button ID="btnpartial" runat="server" onclick="btnpartial_Click" Text="Partial PostBack"/>
         <br />
         <br />
         <asp:Label ID="lblpartial" runat="server"></asp:Label>
      </ContentTemplate>
   </asp:UpdatePanel>
   
   <p> </p>
   <p>Outside the Update Panel</p>
   <p>
      <asp:Button ID="btntotal" runat="server" onclick="btntotal_Click" Text="Total PostBack" />
   </p>
   
   <asp:Label ID="lbltotal" runat="server"></asp:Label>
</form>

هر دو کنترل های button دارای کدهای مشابهی برای هندلر رویداد می باشند:

string time = DateTime.Now.ToLongTimeString();
lblpartial.Text = "Showing time from panel" + time;
lbltotal.Text = "Showing time from outside" + time;

در حین اجرای صفحه مشاهده می کنید که ، اگر کلید Total PostBadck کلیک شود ، تاریخ در هر دو برچسب به روز رسانی می شود ، اما اگر کلید Partial PostBack کلیک شود ، فقط برچسب درون پنل update به روز رسانی می گردد.

یک صفحه می تواند حاوی چندین پنل update بوده و هر پنل شامل کنترل های دیگری مانند grid باشد و بخش های مختلفی از داده ها را نمایش دهد.

هنگامی که یک رویداد total post back رخ می دهد ، محتوای پنل update  به طور پیش فرض به روز رسانی می شود. این حالت پیش فرض ، می تواند با تغییر دادن خصیصه UpdateMode مربوط به کنترل تغییر یابد. بیایید نگاهی به سایر خصیصه های پنل update بیاندازیم.

خصیصه های کنترل UpdatePanel

خصیصه

توضیحات

ChildrenAsTriggers

این خصیصه نشان می دهد که آیا Post back ها از سمت کنترل های فرزند می آیند یا خیر ، که موجب می شوند پنل update تازه سازی (refresh) شود.

ContentTemplate

این خصیصه تمپلت محتوا می باشد و چیزی را که در پنل update ، هنگام refresh شدن نمایان می شود ، تعریف می کند.

ContentTemplateContainer

شیء template container را که به طور خودکار ایجاد شده ، بازیابی می کند و برای افزودن کنترل های فرزند قابل برنامه ریزی ، مورد استفاده قرار می دهد.

IsInPartialRendering

نشان می دهد که آیا پنل به عنوان بخشی از partial post back به روز رسانی می شود یا خیر.

RenderMode

حالت های رندر را نشان می دهد. حالت های موجود Block و Inline می باشند.

UpdateMode

حالت رندرینگ را از طریق تعیین کردن برخی از شرط ها دریافت یا تنظیم می کند.

Triggers

اشیاء مجموعه trigger را که هر کدام با یک رویداد مرتبط هستند و موجب refresh شدن خودکار پنل می شوند ، تعریف می کند.

 

متدهای کنترل UpdatePanel

جدول زیر متدهای کنترل update پنل را نشان می دهد:

متد

توضیحات

CreateContentTemplateContainer

یک شیء Control را ایجاد می کند که به عنوان ظرفی برای کنترل های فرزند عمل می کند که این کنترل های فرزند ، محتوای کنترل UpdatePanel را تعریف می کنند.

CreateControlCollection

مجموعه ای از تمام کنترل ها را باز می گرداند که در کنترل UpdatePanel موجود هستند.

Initialize

اگر رندرینگ partial-page فعال شود ، مجموعه ای از UpdatePanel control trigger را آغاز می کند.

Update

موجب به روز رسانی محتوای یک کنترل UpdatePanel می شود.

 

رفتار پنل update بستگی به مقادیر خصیصه UpdateMode و خصیصه ChildrenAsTriggers   دارد.

UpdateMode

ChildrenAsTriggers

Effect

Always

False

پارامترهای غیر مجاز

Always

True

اگر تمام صفحه refresh شود یا یک کنترل فرزند در صفحه ، عملیات post back را انجام دهد ، UpdatePanel به روز رسانی می شود.

Conditional

False

اگر تمام صفحه refresh شود یا یک کنترل triggering داخل آن عملیات تازه سازی را آغاز کند ، UpdatePanel به روز رسانی می شود.

Conditional

True

اگر تمام صفحه تازه سازی شود یا یک کنترل فرزند در صفحه عملیات post back را انجام دهد یا یک کنترل triggering داخل آن عملیات تازه سازی را آغاز کند ، UpdatePanel به روز رسانی می شود.

 

کنترل UpdateProgress

کنترل UpdateProgress نوعی از feekback (بازخورد) را در مرورگر فراهم می کند ، در حالی که یک یا چند کنترل پنل update به روز می شوند. برای مثال ، درحالی که کاربری وارد سیستم می شود یا منتظر پاسخ سرور می باشد ، در این حین برخی از وظایف مربوط به پایگاه داده انجام می شوند.

این کنترل یک اعلام وصول بصری مانند "صفحه در حال بارگذاری است..." را ارائه می دهد که نشان دهنده پیشرفت کار می باشد.

قاعده نوشتاری برای کنترل UpdateProgress به صورت زیر می باشد:

<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="true" AssociatedUpdatePanelID="UpdatePanel1" >

   <ProgressTemplate>
      Loading...
   </ProgressTemplate>
   
</asp:UpdateProgress>

قطعه کد فوق یک پیام ساده را درون تگ ProgrewwTemplate نشان می دهد. با این حال ، یاختار می تواند به صورت یک تصویر یا سایر کنترل های مرتبط باشد. کنترل UpdateProgress برای  هر postback ناهمزمان نمایش داده می شود ، مگر این که کنترل UpdateProgress ، به یک پنل update واحد ، با استفاده از خصیصه AssociatedUpdatePanelID اختصاص داده شود.

خصیصه های کنترل UpdateProgress

جدول زیر خصیصه های کنترل UpdateProgress را نشان می دهد:

خصیصه

توضیحات

AssociatedUpdatePanelID

ID پنل update را که به این کنترل مرتبط شده است ، دریافت کرده یا تنظیم می کند.

Attributes

صفت های cascading style sheet (CSS) کنترل UpdateProgress دریافت کرده یا تنظیم می کند.

DisplayAfter

زمانی را به واحد میلی ثانیه که تمپلت پیشرفت (progress template) را نمایش می دهد، دریافت کرده و تنظیم می کند. مقدار پیش فرض این خصیصه برابر با 500 می باشد.

DynamicLayout

نشان می دهد که آیا تمپلت پیشرفت به طور خودکار رندر می شود یا خیر.

ProgressTemplate

نشان دهنده تمپلت نمایش داده شده در طول فرآیند post back غیرهمزمان می باشد که زمان بیشتری از مدت زمان DisplayAfter طول می کشد.

 

متدهای کنترل UpdateProgress

متد

توضیحات

GetScriptDescriptors

لیستی از مؤلفه ها ، رفتارها و کنترل های کلاینت را باز می گرداند که برای عملکرد کنترل کلاینت UpdateProgress موردنیاز هستند.

GetScriptReferences

لیستی از وابستگی های کتابخانه کنترل کلاینت را برای کنترل UpdateProgress باز می گرداند.

 

کنترل Timer

کنترل Timer برای مقداردهی کردن post back به صورت خودکار مورد استفاده قرار می گیرد. این کار می تواند به دو روش انجام شود:

  1. تنظیم نمودن خصیصه Triggers مربوط به کنترل UpdatePanel :
<Triggers> 
   <asp:AsyncPostBackTrigger ControlID="btnpanel2" EventName="Click" />
</Triggers>
  1. قرار دادن یک کنترل Timer به طور مستقیم در داخل UpdatePanel ، برای عمل کردن به عنوان یک trigger کنترل فرزند. یک تایمر واحد می تواند به عنوان trigger برای چندین UpdatePanel باشد.

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">

   <ContentTemplate>
      <asp:Timer ID="Timer1" runat="server" Interval="1000">
         </asp:Timer>
         
      <asp:Label ID="Label1" runat="server" Height="101px" style="width:304px" >
         </asp:Label>
   </ContentTemplate>
   
</asp:UpdatePanel>

 

فصلِ: 5 , تعداد قسمت ها: 176 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل پس از بررسی سیستم مسیریابی و طراحی صفحه نمایش ویدیو ها، به سراغ پنل کاربری خواهیم رفت و مباحث Model Binding و…

توجه: این دوره آموزشی به صورت پیوسته بر اساس آخرین نسخه ی ASP.NET Core بروزرسانی خواهد شد.   آموزش صفر تا صد طراحی سایت اشتراک ویدیو مشابه آپارات با استفاده از  ASP.NET CORE  MVC 3.0 و V…
فصلِ: 8 , تعداد قسمت ها: 357 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: در این مجموعه قصد داریم تا فروشگاه اینترنتی دیجی کالا رو با Asp.Net Core3 پیاده سازی کنیم. ابتدا طراحی قالب دیجی کالا رو به صورت کامل انجام خواهیم داد. در مرحله میریم …
فصلِ: 5 , تعداد قسمت ها: 135 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: در این مجموعه آموزشی، با استفاده از جدیدترین تکنولوژی ها و ابزار های مایکروسافت (دات نت)، به یک پروژه جذاب مدیریت آگهی مشابه دیوار می پردازیم. این آموزش در دو بخش کلی و…
فصلِ: 7 , تعداد قسمت ها: 153 , سطح: صفر تا صد
موضوعات: آموزش ASP.NET

این فصل در یک نگاه:

در این دوره به آموزش صفر تا صد جدیدترین نسخه ASP یعنی CORE جدیدترین ورژن خواهیم پرداخت.این آموزش از سطح مقدماتی تا فوق …

دوره آموزش کامل طراحی وب به همراه پروژه ساخت سیستم مدیریت کتابخانه  این دوره  با کور 1 آغاز می شود و در ادامه پروژه به کور 2 تبدیل می شودو پروژه نهایی (سیستم مدیریت کتابخانه) با Asp.net کور…
فصلِ: 1 , تعداد قسمت ها: 5 , سطح: متوسط

این فصل در یک نگاه:

ساخت محیط کاربریآموزش نحوه ی ارسال ایمیل در Asp.net MVCآموزش تنظیمات Gmail برای استفادهاستفاده از Yahooاستفاده از سرویس …

به نام خدا... در خدمتتون هستم با آموزش ارسال ایمیل در Asp.net MVC... ارسال ایمیل یکی از اجزای اصلی ییک سایت به شمار می رود و واقعا سایتی که برای اجزای مختلفش همانند ثبت کاربر جدید و یا ارسال…
فصلِ: 2 , تعداد قسمت ها: 62 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل دوم در یک نگاه:فصل دوم در یک نگاه:…

در این پکیج به مبحث طراحی وب ، در قالب ساخت یک سایت فروشگاهی 5040 به آدرس http://5040.ir می پردازیم که به جرات مشهورترین و یکی از برترین فروشگاه های مجازی در کشور است. در این مجموعه قصد داری…
فصلِ: 4 , تعداد قسمت ها: 78 , سطح: متوسط

این فصل در یک نگاه:

در این دوره آموزشی، وبسایت ورزش3 را با استفاده از ASP.NET Core پیاده سازی می کنیم و همچنین اپ اندروید آن را هم با Xamarin متصل به سرور سایت طراحی و در نهایت نحوه انتشار آن در مارکت هایی مثل …
فصلِ: 1 , تعداد قسمت ها: 14 , سطح: متوسط

این فصل در یک نگاه:

کاملترین آموزش هاست و کار با سی پنل.در هنگام خرید سرویس هاست کلمه ای به نام “کنترل پنل” را زیاد خواهید دید آیا تا به حال…

سی پنل یک کنترل پنل هاست محبوب و معروف در جهان و ایران است. در فیلم آموزش سی پنل هم توصیه اکید شده تا افراد مبتدی و حتی افراد حرفه ای از این کنترل پنل هاست سی پنل استفاده کنند. آموزش cpanel …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…
فصلِ: 1 , تعداد قسمت ها: 15 , سطح: متوسط

این فصل در یک نگاه:

رشد و درآمدزایی یک وب سایت یا کسب و کار اینترنتی کاملا به ذوق و مهارت وب مستر یا همان مدیر اصلی وب سایت گره خورده و متاس…

 اصول مدیریت وب سایت برای وب مستر شدن برای موفقیت یک وب سایت لازم الاجراست. زیرا شما دوست دارید وب سایت خود را به کارخانه پولسازی تبدیل کنید. این واقعیت رویا نیست. هرکس این اصول را بداند به …

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید