PDA

View Full Version : PostBack چیه؟



baran_mehr
چهارشنبه 25 دی 1387, 13:52 عصر
کسی از دوستان میتونه مفهومه PostBack را به صورت واضح بیان کنه؟
من دقیقا متوجه نمیشم که چه کاری میکنه!!!

mh19842008
چهارشنبه 25 دی 1387, 14:51 عصر
ارسال داده ها از صفحات به سمت سرور با این ویژگی شما میتوانید یکسری مقادیر صفحه رو به سرور یا به صفحه دیگه ارسال کنید

baran_mehr
چهارشنبه 25 دی 1387, 17:42 عصر
میشه یک مسال ساده بزنید؟ ممنون

mh19842008
چهارشنبه 25 دی 1387, 18:28 عصر
مثلا زمانی که خواسته باشید یکسری اطلاعات را با توجه به واکنش و درخواست کاربر برای او نمایش دهید مثل بعضی سیستم های ثبت نام با انتخاب یک کشور در یک drop down list بلافاصله با انتخاب کاربر استان های آن کشور نمایش داده شود

milade
پنج شنبه 26 دی 1387, 13:53 عصر
سلام
پست بک یعنی ارسال و دریافت اطلاعات به سرور که همراه با refresh هستش
با این دستور میشه فهمید که صفحه پست بک شده یا نه ! مقدارش به صورت true و false هستش :

dim x = page.ispostback
موفق باشی

baran_mehr
پنج شنبه 26 دی 1387, 14:45 عصر
خوب از این PostBack کجاها میشه استفاده کرد ، منظورم اینکه بدرد چه جاهایی میخوره که کاره مارو بهتر راه میندازه؟

Behrouz_Rad
پنج شنبه 26 دی 1387, 15:26 عصر
فرم های وب بر خلاف فرم های ویندوزی، حالت stateless دارن. یعنی وضعیتشون "تقریباً" پایدار نیست.
صفحه ای که نتیجه ی پردازشش به کلاینت ارسال میشه، دیگه وجود نداره.
در برنامه های ویندوزی، روال های Load فرم فقط یک بار و اون هم در زمان نمایش فرم رخ میده.
اما در برنامه های وب، در هر بار ارسال صفحه به سرور، روال های مرتبط با صفحه (از جمله Load) مجدداً رخ میدن.

از اونجایی که روال Bind کردن کنترل ها رو معمولاً در Load مینویسن، اگر PostBack بودن صفحه بررسی نشه، اون داده ها مجدداً از منبع داده بازیابی میشن و وضعیت اون کنترل که قصد داری داده ها رو بهش Bind کنی از بین میره.

فرض کن تو چند دکمه داری که عملیات Paging رو روی GridView انجام میدن. بر روی یکی از دکمه ها کلیک می کنی تا به صفحه ی دوم GridView بری. مطمئناً در این حالت، روال هندل کردن Paging رو در جای دیگه ای به جز روال Load نوشتی. اگر شرط PostBack بودن رو در Load فرم بررسی نکنی، روال Load مجدداً رخ میده (که نباید رخ بده) و داده ها مجدداً از دیتابیس بازیابی و به کنترل GridView نسبت داده میشن. در این حالت، وضعیت GridView که در ViewState بوده Refresh میشه و برنامه نمی تونه تشخیص بده اون دکمه ای که بر روی اون کلیک شده کدوم دکمه بوده و در نتیجه تو همچنان صفحه ی اول رو می بینی.

PostBack شدن یعنی پست صفحه ای به خودش. مثل کلیک بر روی یک دکمه و اجرای متد مربوطه در همون صفحه.

موفق باشید.

baran_mehr
پنج شنبه 26 دی 1387, 17:46 عصر
از توضیحتون واقعا ممهنونم اقای راد. مثالتون هم باعث شد بهتر با مساله اشنا بشم.
حالا برای اینکه این عمل رو روی فرم انجام بدیم باید خاصیت PostBack اون رو فعال کنیم.
یه سوال برام پیش میاد:وقتی فرم رو PostBack کنیم ایا در زمانهایی که صفحه رفرش میشه مثلا زمانی که روی یک Button کلیک میکنیم ،دیگه فرم لود دوباره اجرا نمیشه؟؟

Behrouz_Rad
پنج شنبه 26 دی 1387, 18:04 عصر
اگر شرط IsPostBack رو در Load بررسی کنی و True باشه، کدهای بین ساختار If اجرا نمیشن.