PDA

View Full Version : سوال در مورد نحوه عملکرد UpdatePanel



آرام جان گل
دوشنبه 25 آبان 1388, 13:13 عصر
سلام

آیا بهتره که من هر کنترلی را جداگانه توی یک UpdatePanel بزارم مثلا گرید را دریکی و فرم ویو را در یکی و کمبو ها را هم جداگانه در UpdatePanel بزارم و Mode اونها را روی COnditional قرار بدم و در زمان نیاز آنها را تغییر بدم و در صورتی که نیاز نیست الکی و نا به جا داده ها را Postback نکنم
یا اینکه همه کل صفحه را در یک updatePanel بزارم


یک سوال دیگه :
آیا اصلا کار درستی هست که من در فرمم یک sql datasouce یا ObjectDataSource را در UpdatePanel نزارم ؟ این مشکلی پیش می یاره؟

با اینکه این همه درمورد UpdatePanel مطلب خوندم ولی دقیقا نمی فهمم که این کنترل چی کار می کنه ، فقط داده ها در هر پست بک ارسال می شه؟ یا کل صفحه در هر پست بک ارسال می شه .
اصلا اگه اطلاعات تغییر می کنه حتما به سمت سرور ارسال میشه پس چرا صفحه حالت Refresh نداره
آیا صفحه منتظر می مونه تا فقط داده ها ارسال شوند؟

خواهش می کنم زیر دیپلم توضیح بدید تا من هم بعد از صد و بیست سال بفهمم این کنترل داره چی کار می کنه؟

emad8159
سه شنبه 26 آبان 1388, 15:54 عصر
دوست عزیز در جواب سوال اولت بگم که شما با استفاده از updatepanel تنها بروی آن دسته از کنترل های که داخل پنل هستند عملیات postback انجام می شود . و نه بروی تمامی کنترل های موجود بروی صفحه.:گیج:

alireza_s_84
سه شنبه 26 آبان 1388, 18:07 عصر
سلام دوست عزیز:

آیا بهتره که من هر کنترلی را جداگانه توی یک UpdatePanel بزارم مثلا گرید را دریکی و فرم ویو را در یکی و کمبو ها را هم جداگانه در UpdatePanel بزارم و Mode اونها را روی COnditional قرار بدم و در زمان نیاز آنها را تغییر بدم و در صورتی که نیاز نیست الکی و نا به جا داده ها را Postback نکنم
یا اینکه همه کل صفحه را در یک updatePanel بزارم
صفحه رو با UpdatePanel های مختلف تقسیم بندی کنید. تا فقط اون بخش از صفحه که مورد نیازه به روز بشه. و اصولا استافده از خاصیت Always توصیه نمیشه مگر در موارد اظطراری.

یک سوال دیگه :
آیا اصلا کار درستی هست که من در فرمم یک sql datasouce یا ObjectDataSource را در UpdatePanel نزارم ؟ این مشکلی پیش می یاره؟
قرار دادن یا ندادن این کنترل ها در UpdatePanel هیچ مشکلی بوجود نمیاره. چون این کنترلها در سمت سرور پردازش میشن و نتیجه ای در خروجی ندارند. ضمنا ماهیت UpdatePanel تقسیم بندی بخش هایی از صفحه است که نیاز به روز رسانی دارند. قابل توجه اینکه کل محتوای کنترلهای وب به سرور فرستاده میشه اما فقط کنترلهایی که در UpdatePanel وجود دارند مقدارشون تغییر میکنه. اگر با Ajax بصورت دستی عمل کرده باشید معمولا برای ایجاد پست بک محتوای تمامی کنترلهای فرم رو میخوندیم و به صورت زوج های فیلد/مقدار سمت سرور میفرستیم بعد نتیجه که از سرور رسید فقط بخش مورد نیازمون رو با استفاده از document.getElemntById بطور مثال تغییر میدادیم. دقیقا این سناریو توسط UpdatePanel پیاده سازی میشه با این تفاوت که یکسری مسائل امنیتی رو هم پیاده سازی میکنه.

با اینکه این همه درمورد UpdatePanel مطلب خوندم ولی دقیقا نمی فهمم که این کنترل چی کار می کنه ، فقط داده ها در هر پست بک ارسال می شه؟ یا کل صفحه در هر پست بک ارسال می شه .
اصلا اگه اطلاعات تغییر می کنه حتما به سمت سرور ارسال میشه پس چرا صفحه حالت Refresh نداره
آیا صفحه منتظر می مونه تا فقط داده ها ارسال شوند؟
ارسال کل صفحه یا PostBack کامل یعنی ارسال محتوای کل صفحه ولی ماهیت Ajax ارسال مقدار فیلدهای فرمها (قاعدتا فقط اینها مورد نیاز پردازش هستند) به سرور است. تنها کار این کنترل تعیین بخش هایی از صفحه است که بدون نیاز به Refresh شدن باید بروز بشن.(برخلاف تصور همه عمل ارسال و دریافت اطلاعات از سرور توسط ScriptManager) صورت میگیره.
در کل در سمت کلاینت این کنترل به تگ های div تبدیل میشه که بعد با استفاده از id همین div محتوای داخلش به روز میشه.
نکته آخر در همه حال مقدار فیلدهای پنهان ضروری بخصوص ViewState به روز رسانی میشه.
موفق و پیروز باشید.