1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش Ajax / معرفی کنترل ScriptManager

شروع موضوع توسط Amon Amarth ‏22/4/13 در انجمن Ajax

  1. کاربر ارشد

    تاریخ عضویت:
    ‏7/6/12
    ارسال ها:
    12,082
    تشکر شده:
    28,151
    امتیاز دستاورد:
    113
    جنسیت:
    مرد
    [h=2] معرفی کنترل ScriptManager
    [/h]
    آشنایی با کنترل ScriptManager :

    کنترل ScriptManager ، وظیفه مدیریت اسکریپت ها بر روی صفحات ASP.Net ای که قابلیت Ajax آنها فعال است را بر عهده دارد . به طور پیش فرض ، کنترل ScriptManager ، اسکریپت های به وقوع پیوسته متعلق به عملیات های Ajax در صفحه را ، با مجموعه سایر اسکریپت های صفحه مرتبط می کند .
    این کار امکان استفاده از قابیلت های مرورگر در سمت کلاینت و آپدیت شدن بخش های مختلف صفحه بدون رفرش شدن کامل آن را می دهد .
    شما بایستی از یک کنترل ScriptManager ، برای فعال سازی قابلیت های Ajax زیر در صفحات ASP.Net استفاده نمایید :


    • به روز رسانی و تغییر فقط بخشی از صفحه که می خواهید تغییر کند ، به جای Postback شدن کل آن . کنترل های UpdatePannel و UpdateProgress و Timer برای کارکرد صحیح بر روی صفحات ASP.Net ، به یک کنترل ScriptManager نیاز دارند .
    • امکان دسترسی کلاس های جاوا اسکریپت به سایر اطلاعات صفحات ASP.Net ، مثل اطلاعات اهراز هویت کاربر ، پروفایل ها و ... .
    • دسترسی کلاس های جاوا اسکریپت به وب سرویس های فعال بر روی صفحات ASP.Net .
    طرز کار کنترل ScriptManager :

    هنگامی که صفحه شامل یک یا چندین کنترل UpdatePannel می باشد ، کنترل ScriptManager ، انجام عملیات به روز رسانی و تغییر اطلاعات در آنها را مدیریت می کند . این کنترل با متدهای حیات صفحه ( Page life cycles ) ، برای به روز رسانی بخش های مختلف کنترل UpdatePannel در ارتباط است .
    خاصیت EnablePartialRendering ، تعیین می کند که آیا اطلاعات به روز رسانی و تغییر در صفحه بدون Postback شدن آن فعال باشد یا خیر . به طور پیش فرض ، این مقدار بر روی true تنظیم شده و فعال است .
    برای دریافت اطلاعات بیشتر راجع به نحوه استفاده از کنترل های UpdatePannel و UpdateProgress و Timer ، به بخش های آموزشی آنها بروید .


    مدیریت خطاهای احتمالی در آپدیت صفحات :

    چنانچه در هنگام انجام عمل به روز رسانی و آپدیت بخشی از صفحه ، خطایی رخ دهد ، به وسیله کارهای زیر در کنترل ScriptManager ، می توانید آنها را مدیریت نمایید :

    • تنظیم خاصیت AsyncPostBackErrorMessage کنترل ، که تعیین کننده پیام خطایی است که به مرورگر فرستاده می شود .
    • مدیریت رویداد AsyncPostBackError کنترل ScriptManager ، که در زمان بروز خطا در عمل آپدیت رخ داده و می توان کدهای مورد نظر خود را در آن قرار داد .
    • تنظیم خاصیت AllowCustomErrorsRedirect کنترل ، که تعیین می کند بخش خطاهای احتمالی ( Custom Errors ) در فایل web.config سایت ، چگونه باید استفاده شوند .
    ثبت کردن اسکریپت های مورد نظر در صفحه با کنترل ScriptManager :

    می توانید از کنترل ScriptManager ، برای مدیریت منابع کنترل هایی که در عملیات آپدیت و به روز رسانی صفحه ، نقش دارند ، استفاده کنید . این منابع شامل اسکریپت ها ، استایل ها ، فیلدهای مخفی و ... می شوند .
    مجموعه اسکریپت های ( Scripts Collection ) کنترل ScriptManager ، شامل یک شی ScriptReference برای هر اسکریپتی که در صفحه قرار دارد ، می باشد . شما می توانید به طور صریح یا برنامه نویسی شده ، اسکریپت ها را تعیین کنید .
    همچنین کنترل ScriptManager ، متدهای ثبت و ارتباط دهی را اجرا می کند ، که به وسیله آنها می توانید ، اسکریپت های کلاینت و فیلدهای مخفی روی صفحه را به صورت برنامه ریزی شده ، مدیریت نمایید .

    ثبت کردن وب سرویس ها :

    برای ثبت یک وب سرویس که شما می خواهید از یک صفحه ASP.Net با قابلیت Ajax فعال ، آن را فراخوانی نمایید ، باید وب سرویس را با اضافه کردن آن به مجموعه Services کنترل ScriptManager ، ثبت نمایید .
    چهارچوب کاری مایکروسافت ایجکس ، یک شی کلاینت را برای هر شی ServiceReference در مجموعه Services کنترل ایجاد می کنند . کلاس پروکسی و اعضای آن از کنترل ScriptManager ، به راحتی با وب سرویس ها از طریق کلاینت اسکریپت ، ارتباط برقرار می کند .

    کلاس ScriptManagerProxy :

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



    منبع: developer1
     
    یک شخص از این تشکر کرد.