چگونه یک progress Bar برای update کردن ایجاد کنیم
مقدمه :
Asp.net یک Update progress control بسیارمفید دارد که یک نمایشگر Update ایجاد می کند و تا هنگامی که یک عمل در حال بروز شدن باشد نمایش داده شود.
مطمئناٌ بهتر است که تمام المانها در هنگام Update روی صفحه نمایش داده شوند.
این دستورات به ما اجازه می دهند تا بتوانم یک Control ModalUpdateProgress بسازیم تا UpdateProgress بتواند به عنوان یک ماژول Popup ظاهر شود.
مطمئناٌ بهتر است که تمام المانها در هنگام Update روی صفحه نمایش داده شوند.
این دستورات به ما اجازه می دهند تا بتوانم یک Control ModalUpdateProgress بسازیم تا UpdateProgress بتواند به عنوان یک ماژول Popup ظاهر شود.
UpdateProgress به چه شکل کار می کند:
اگر شما فایل System.Web.Extensions.dl را با استفاده از یک Reflector باز کنید، شما قادر خواهید بود که ببینید UpdateProgress control به چه شکل کار می کند. ملاحظه فرمائید IScriptControl به راحتی دو متد GetScriptDescriptors() و GetScriptReferences را پیاده سازی کرده. با توجه به مستندات AJAX، GetScriptDescriptors تمام لیستهای اجزاء، رفتار و کنترل های Client، که برای فرایند UpdateProgress نیاز است را برمی گرداند، و همینطور GetScriptReferences یک لیست از وابستگی های کتابخانه ClienScript را برای updateProgress برمی گرداند. در GetScriptDescriptors کنترل UpdateProgress یک توصیفگر ScriptControlی با نام Sys.UI._UpdateProgress ثبت می کند.که کلاسی است که در فرمهای MicrosoftAjaxWebForms.js قابل دسترس است.Js یکی از متدهای ASP.NET AJAX client script libraries است که در Sys.UI._UpdateProgress تعبیه شده است. با نگاه کردن در یکی از مدلهای MicrosoftAjaxWebForms.js، منطقی را که در Sys.UI._UpdateProgress بکار برده شده درک خواهیم کرد.
ساختن یک کنترل ModalUpdateProgress :
در گام اول، ما ModalUpdateProgress را از UpdateProgress مشتق می گیریم تا بتوانیم از تمام خصوصیات و واسط ها مجدداٌ استفاده کنیم. بعداٌ، ما باید دو متد GetScriptDescriptors() و GetScriptReferences را سربارگذاری کرده و اجزاء client-side script را پیاده سازی کنیم. و ما نام اجزای client script را Sys.UI._ModalUpdateProgress می گذاریم که به عبارت دیگر زیرکلاس Sys.UI._UpdateProgress است .
در زیر می توان جزئیات پیاده سازی GetScriptDescriptors و GetScriptReferences را مشاهده کرد.
در زیر می توان جزئیات پیاده سازی GetScriptDescriptors و GetScriptReferences را مشاهده کرد.
هر دو متد، IEnumerable's های را تولید می کنند که بعداً بوسیله ScriptManager کنترل می شوند. برای پیاده سازی اجزاء Sys.UI._ModalUpdateProgress، ما می توانیم اسکریپت هایی از کنترل های ModalPopup موجود در AJAX Control Toolkit قرض بگیریم. ما باید یک سری دستکاریهای جزئی اعمال کنیم که در اینجا به آنها نمی پردازیم. ولی آنهای که علاقه مند هستند، می توانند به منبع ModalUpdateProgress.js مراجعه کرده و جزئیات پیاده سازی را ملاحظه فرمایند.
روش استفاده:
درست شبیه کنترل UpdateProgress، شما می توانید از خصوصیات ProgressTemplate استفاده کرده تا نمایشگر پیشرفت را در ModalUpdateProgress خصوصی یا Customize کنید.
کنترل ModalUpdateProgress یک خصوصیت اضافه دیگری دارد به نام BackgroundCssClass دارد که برای تنظیم کردن کلاس CSS جهت پس زمینه های دلخواه، زمانی که کنترل نمایش داده می شود، بکار برده می شود.
بعلاوه الگوی پروگرس( progressTemplate) می تواند یک دکمه اضافه کند که کاربر با کلیک کردن روی آن عملیاتUpdate را Cancel کند. برای اینکه دکمه Cancel کار کند، شما باید خصوصیات CancelControlID را بوسیله استفاده از ButtonID در ProgressTemplate تعیین کنید.
در زیر مثالی از اضافه کردن ModalUpdateProgress به صفحه، نمایش داده شده.
کنترل ModalUpdateProgress یک خصوصیت اضافه دیگری دارد به نام BackgroundCssClass دارد که برای تنظیم کردن کلاس CSS جهت پس زمینه های دلخواه، زمانی که کنترل نمایش داده می شود، بکار برده می شود.
بعلاوه الگوی پروگرس( progressTemplate) می تواند یک دکمه اضافه کند که کاربر با کلیک کردن روی آن عملیاتUpdate را Cancel کند. برای اینکه دکمه Cancel کار کند، شما باید خصوصیات CancelControlID را بوسیله استفاده از ButtonID در ProgressTemplate تعیین کنید.
در زیر مثالی از اضافه کردن ModalUpdateProgress به صفحه، نمایش داده شده.
برای اینکه ببینید این به چه شکل کار می کند، می توانید به سایتی که در ضمیمه برای دانلود آمده مراجعه کنید. کنترل ModalUpdateProgress تمام خصوصاتی که UpdateProgress دارد را شامل می شود. که شامل ارتباط ModalUpdateProgress با UpdatePanel است.
مترجم : فرزاد شیرزاد
مترجم : فرزاد شیرزاد
تصاوير زيبا و مرتبط با اين مقاله