ASP.NET، مقالات

استفاده از jQuery UI Dialog در ASP.NET


یکی از نیازهای مهم برنامه نویسان وب، مخصوصاً هنگام توسعه وب اپلیکیشن ها، استفاده از دیالوگ ها برای کاربردهای مختلف است. در حالی که در برنامه های ویندوزی استفاده از پنجره های دیالوگ امری رایج و ساده است، در محیط وب اینگونه نیست. در واقع در وب چیزی که به عنوان دیالوگ در ویندوز می شناسیم وجود ندارد، و باید با همین صفحات معمولی و مقداری کد جاوا اسکریپت یک پنجره دیالوگ را ایجاد کنیم. این مسئله در برخی مواقع واقعاً مشکل ساز می شود و دست برنامه نویس را می بندد.

خوشبختانه کتابخانه jQuery UI دارای یک کامپوننت Dialog مناسب برای استفاده در محیط وب است که با تمامی مرورگرهای مدرن سازگاری کامل دارد و به علت اینکه بر روی کتابخانه jQuery کار می کند در تمام پلت فرم های توسعه وب قابل استفاده است.

برای استفاده از این Dialog در یک صفحه ASP.NET باید کتابخانه های jQuery و jQuery UI را دانلود کنید و در صفحه مورد نظر خود به آن ها ارجاع اسکریپتی بدهید. در این مطلب یک مثال ساده در مورد استفاده از jQuery UI Dialog  را توضیح خواهیم داد. پروژه مثال این مطلب را از اینجا دریافت کنید. قصد ندارم تمام کدهای نوشته شده در این پروژه مثال را توضیح بدهم، فقط نکات مهم مربوط به موضوع بحث را خواهید خواند. خواندن سورس کد و مشاهده مثال بهتر از توضیحات متنی به شما کمک می کند.

پس از دانلود و اجرای پروژه، با یک صفحه ساده مواجه خواهید شد که یک دکمه با عنوان Set Values در آن وجود دارد. با کلیک کردن بر روی این دکمه یک دیالوگ jQuery شبیه به تصویر زیر خواهید داشت :

jQuery UI Dialog Exampleدکمه Cancel دیالوگ را می بندد و دکمه OK برچسب های روی صفحه را با مقادیر تکست باکس ها هماهنگ می کند. jQuery UI Dialog در حالت معمول بعد از تگ form در ASP.NET رندر می شود که این باعث می شود تا دکمه های موجود در دیالوگ هیچ Post Backی به صفحه نداشته باشند که البته این مشکل به راحتی حل می شود. برای اینکه دکمه های موجود در دیالوگ بدون رفرش شدن صفحه کار خود را انجام بدهند، محتویات دیالوگ را درون یک UpdatePanel قرار می دهیم. مهمترین کدهایی که در مورد آن ها بحث می کنیم، کدهای جاوا اسکریپت زیر هستند :

<script type="text/javascript">
 $(document).ready(function () {
 $('#divValues').dialog({
 autoOpen: false,
 draggable: true,
 maxHeight: 440,
 width: 400,
 modal: true,
 title: "Enter values",
 open: function (type, data) {
 $(this).parent().appendTo("form");
 }
 });
 });

 function openDialog(id) {
 $('#' + id).dialog("open");
 }

 function closeDialog(id) {
 $('#' + id).dialog("close");
 }

 </script>

در واقع این کدهای بالا هستند که دیالوگ jQuery را می سازند و آن را باز و بسته می کنند. علامت $ که در ابتدای کد بکار رفته نشان دهنده این است که در حال استفاده از توابع کتابخانه jQuery هستیم. تابع اول دیالوگ را با خصوصیات مشخص شده مقدار دهی می کند. لیست کامل این خصوصیات را می توانید اینجا مشاهده کنید و بر اساس نیاز خود تغییر دهید. بعد از اجرای برنامه، تا زمانی که تابع openDialog صدا زده نشود، دیالوگ ما هم نشان داده نخواهد شد و در واقع jQuery آن را از دید کاربر مخفی نگه خواهد داشت. محتویات یک دیالوگ باید در یک div قرار بگیرند که نام آن باید برای dialog مشخص شود. نکته ای که شما به عنوان یک برنامه نویس ASP.NET در این مورد باید بدانید این است که حتماً UpdatePanel دیالوگ را داخل این div قرار دهید تا کدهایتان به درستی کار کند.

ویژگی خوب کتابخانه jQuery UI سبک بودن و سازگار بودن با اکثر مرورگرهای مدرن امروزی است. برای تغییر ظاهر دیالوگ هم دست شما بسیار باز است و می توانید از تم های آماده jQuery UI استفاده کنید و یا حتی استایل خود را برای آن بسازید.

دریافت پروژه مثال

7 نظر برای “استفاده از jQuery UI Dialog در ASP.NET

  1. آموزش مفیدی بود.فکر میکنید برای همچین مواردی استفاده از updatepanel بهتر است یا امکانات AJAX خود jquery.

    در ضمن با استفاده از راهنمایی شما در gravatar.com عضو شدم و اکنون باید آواتار من رو نشون بده.

    1. در کل استفاده از jQuery مناسب تر است. استفاده از UpdatePanel می تواند کارتان را سریعتر راه بیندازد و با روحیه یک برنامه نویس ASP.NET WebForms سازگارتر است!
      بله در حال حاضر آواتار شما در هر سایتی نشان داده می شود.

  2. سلام
    من مثال شما رو در net 2005n اجرا کردم. البته فیا config رو متناسب با 2005 تغییر دادم
    اما پیغام خطای زیر رو داد.
    Could not load file or assembly ‹jQueryUIDialogSample› or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

    با تشکر

  3. دوست خوبم سلام
    با تشکر از مطالب وبلاگ شما
    لطفا به این وب سایت برور و عضو بشو ، اینجا می تونی اطلاعات خودت رو به کلی شرکت نرم افزاری و طراحی معرفی کنی بدون هیچگونه هزینه ، فقط اطلاعات رو تکمیل وارد کن. درحال حاضر روی برنامه نویسی و طراحی فوکوس کرده ، چون که شرکت ها نیاز به این نیرو ها دارن
    http://www.greenjob.ir
    باتشکر میثم قاسمی،مدیر روابط عمومی

  4. سلام دوست عزیز.
    ممنون از پست مفید شما.
    بیشتر مشکلات برنامه نویسانی که این 2 تکنولوژی(ASP.NET و JQuery ) را نمی شناسند مربوط به این است که به طور مثال Dialog را از سمت سرور نمایش دهند و یا آن را در Update Panel نمایش دهند . که هر کدام از این مشکلات راه حل های ساده ای دارد.
    منتظر دیگر پست های مفید شما هستم.

بیان دیدگاه