PDA

View Full Version : سوال: post back شدن بخشی از صفحه



f_g1348
شنبه 01 شهریور 1393, 09:11 صبح
سلام
چطور امکانش هست که در یک صفحه ، فقط یکسری مشخص از آیتم ها Post back بشن ، نه همه صفحم ؟

takparz
شنبه 01 شهریور 1393, 10:35 صبح
باید از AJAX استفاده کنی اگه زیاد وارد نیستی از ابزار ها UpdatePanel رو انتخاب کن و المانی رو که میخوای فقط اون تغییر کنه بذار داخلش البته باید ScriptManager رو هم به صفحه اضافه کنی .دقت کن که مکانشون درست باشه

mustafaehsani
شنبه 01 شهریور 1393, 19:53 عصر
باید از AJAX استفاده کنی اگه زیاد وارد نیستی از ابزار ها UpdatePanel رو انتخاب کن و المانی رو که میخوای فقط اون تغییر کنه بذار داخلش البته باید ScriptManager رو هم به صفحه اضافه کنی .دقت کن که مکانشون درست باشه

البته اینم باید در نظر بگیری در اصل کل صفحه Post back اما در ظاهر محتویات داخل UpdatePanel به روز میشه

korosh00
شنبه 01 شهریور 1393, 20:37 عصر
راهی هست توی یک گرید ویو فقط رکورد مورد نظر که ویرایش شده آپدیت بشه ؟ نه کل گرید ویو

ahmad156
شنبه 01 شهریور 1393, 20:44 عصر
البته اینم باید در نظر بگیری در اصل کل صفحه Post back اما در ظاهر محتویات داخل UpdatePanel به روز میشه
!!!!!!
دوست عزیز فقط قسمتی که درون UpdatePanel هست به روز میشه نه کل صفحه!!!
دوست عزیز شما اگر در مورد UpdatePanel یه جستجو کوچیک بزنین هزار تا لینک پیدا میکنین

mustafaehsani
شنبه 01 شهریور 1393, 21:33 عصر
!!!!!!
دوست عزیز فقط قسمتی که درون UpdatePanel هست به روز میشه نه کل صفحه!!!
دوست عزیز شما اگر در مورد UpdatePanel یه جستجو کوچیک بزنین هزار تا لینک پیدا میکنین

کتاب asp.net 4.5 in c# مهندس مهدی کرامتی و مهندس سید منصور عمرانی ص 918

نکته: وقتی از UpdatePanel استفاده می کنید پهنای باند شبکه مدت زمانی که برای دریافت پاسخ از سرور صرف می شود کاهش پیدا نمی کند زیرا بازهم کل صفحه ارسال شده و برگردانده می شود. تنها فرقی که وجود دارد این است که صفحه بدون پرش به روز می شود

mustafaehsani
شنبه 01 شهریور 1393, 21:38 عصر
در ادامه بازهم اومده که

اول این که اطلاعات به شکل غیر همزمان ارسال می شود دوم این که کنترل UpdatePanel فقط محتوای خودش را به روز می کند و سایر قسمت های صفحه دست نخورده باقی می ماند

ahmad156
شنبه 01 شهریور 1393, 21:46 عصر
دوست عزیز 2 تا نوشته ات در تناقض هست که:لبخندساده:
نوشته دومتون درسته البته.
شما MSDN خود مایکروسافت (http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel%28v=vs.110%29.aspx) رو ببینین.عبارت زیر از قسمت Remark رو در نظر داشته باشین

UpdatePanel controls are a central part of AJAX functionality in ASP.NET. They are used with the ScriptManager (http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager%28v=vs.110%29.aspx) control to enable partial-page rendering. Partial-page rendering reduces the need for synchronous postbacks and complete page updates when only part of the page has to be updated. Partial-page rendering improves the user experience because it reduces the screen flicker that occurs during a full-page postback and improves Web page interactivity

mustafaehsani
شنبه 01 شهریور 1393, 21:50 عصر
دوست عزیز 2 تا نوشته ات در تناقض هست که:لبخندساده:
شما MSDN خود مایکروسافت (http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel%28v=vs.110%29.aspx) رو ببینین.عبارت زیر از قسمت Remark رو در نظر داشته باشین

UpdatePanel controls are a central part of AJAX functionality in ASP.NET. They are used with the ScriptManager (http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager%28v=vs.110%29.aspx) control to enable partial-page rendering. Partial-page rendering reduces the need for synchronous postbacks and complete page updates when only part of the page has to be updated. Partial-page rendering improves the user experience because it reduces the screen flicker that occurs during a full-page postback and improves Web page interactivity


دوست عزبز این کتاب ترجمه asp.net in C#‎‎‎ from novice to professional هست و در ضمن ترجمه مهندس کرامتی که شما بهش ارادت خاصی دارید و مطلبی از خودم نیاوردم. حالا من باید به این دوتا مرجع موثق تکیه کنم یا درک شما از مطلب فوق؟؟؟؟؟؟

ahmad156
شنبه 01 شهریور 1393, 22:06 عصر
اولاً مطلب کاملاً واضح هست و فکر نمیکنم درک متفاوتی برنامه نویسای مختلف از این مطلب داشته باشن دوماً معتبرترین منبع توی دنیا مطمئناً MSDN خود مایکروسافت هست نه حتی نوشته های بهترین برنامه نویس ها سوماً شما دارین عرض میکنین که زمان استفاده از UpdatePanel کل صفحه PostBack میشه.شما میتونین با استفاده از لینک بالا (http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel%28v=vs.110%29.aspx) و این اینک (http://msdn.microsoft.com/en-us/library/vstudio/bb386573%28v=vs.100%29.aspx) که مطمئناً موثق ترین مطلب ها هستند این مطلبتون رو توضیح بدین؟

mustafaehsani
شنبه 01 شهریور 1393, 22:13 عصر
اولاً مطلب کاملاً واضح هست و فکر نمیکنم درک متفاوتی برنامه نویسای مختلف از این مطلب داشته باشن دوماً معتبرترین منبع توی دنیا مطمئناً MSDN خود مایکروسافت هست نه حتی نوشته های بهترین برنامه نویس ها سوماً شما دارین عرض میکنین که زمان استفاده از UpdatePanel کل صفحه PostBack میشه.شما میتونین با استفاده از لینک بالا (http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel%28v=vs.110%29.aspx) و این اینک (http://msdn.microsoft.com/en-us/library/vstudio/bb386573%28v=vs.100%29.aspx) که مطمئناً موثق ترین مطلب ها هستند این مطلبتون رو توضیح بدین؟

ولی من توصیه می کنم این فصل (فصل 25 asp.net ajax) از این کتاب رو حتماً مطالعه کنید چندین مثال هم داره که به این موضوعات اشاره می کنه

pbm_soy
یک شنبه 02 شهریور 1393, 01:35 صبح
سلام به همگی

برای مشخص تر کردن سوء تفاهم بین دو دوست عزیر (ahmad156 و mustafaehsani) فکر میکنم گفته هر دو دوست عزیز درست باشد

بله صحیح است که updatepanel فقط بخشی از محتوای صفحه را بروزرسانی میکند ولی از طرفی دیگر هم واقعا عمل Page_Load برای صفحه رخ می دهد و isPostBack مربوط به صفحه True میشود.!

فکر میکنم منظور mustafaehsani همین باشد ولی در نوشته پستشون خواننده برداشت دیگری می کند و مانند مدیر بخش که از نوشته ایشون کاملا برداشت کردن که کل صفحه بروزرسانی میشود یعنی کل برای کلاینت می آید ولی فقط در ظاهر بخشی از صفحه بروز می شود.!

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

mustafaehsani
یک شنبه 02 شهریور 1393, 08:09 صبح
من متن فارسی کتابی که mustafaehsani معرفی کردند را نخوندم و فکر هم نمیکنم مترجم به خودش زحمت باز کردن مطلب را به خودش داده باشدو احتمالا صرفا ترجمه کرده است.

چرا دقیقاً موضوع با چند مثال مطرح و باز شده

Himalaya
یک شنبه 02 شهریور 1393, 12:02 عصر
سلام

البته اینم باید در نظر بگیری در اصل کل صفحه Post back اما در ظاهر محتویات داخل UpdatePanel به روز میشه
البته منظورتون از کل صفحه، باید المانهای داخل تگ Form باشه. نه کل صفحه. سرور به کل صفحه نیاز نداره. (با FireBug قسمت ارسال شده برای سرور تو تصویر زیر نشون داده شده)

122618

چرا در ظاهر؟ مشخصا محتویات UpdatePanel فقط به روز میشه.
تو استفاده از Update Panel مفهوم AsyncPostBack رو داریم که کمی با PostBack عادی فرق داره. تو هر دو، تمام ایونت های مربوط به Page اجرا میشن (رویدادهای مربط به Init و Render و Load) و ارسال ViewState و FormData. ولی تفاوتشون چیه؟ فرقشون اینه که تو فاز Render، زمان AsyncPostBack فقط محتویات UpdatePanel بعد از Render شدن، برای مرورگر کاربر ارسال میشه (تصویر پایین قسمت Result). اما تو PostBack معمولی، تمام صفحه برای Client ارسال میشه

122622

122621

برای اینکه بشه AsyncPostBack رو از PostBack عادی تشخیص داد از کد زیر میشه استفاده کرد.

protected void Page_Load(object sender, EventArgs e) {
var scriptManager = ScriptManager.GetCurrent(Page);
if (scriptManager != null && scriptManager.IsInAsyncPostBack) {
lblResult.Text = "AsyncPostBack " + DateTime.Now.Second;
}
}

موفق باشید.

mortezagt
یک شنبه 02 شهریور 1393, 13:08 عصر
آقای کرجی درست میگه

pbm_soy
دوشنبه 03 شهریور 1393, 00:22 صبح
آقای کرجی درست میگه

منظور من این بود که هردوی آقایان به نحوی درست میگویند اگر توضیحات بیشتری میدادند.!
مثل توضیحات جامع karaj333 که فکر میکنم به نتیجه کاملی رسید

البته بحثهای اینجوری خیلی خوب است بشرطی که درست و با احترام متقابل باشد