PDA

View Full Version : تشخیص کلیک button در page load



mirza
سه شنبه 08 فروردین 1385, 11:54 صبح
سلام

من چند تا دکمه رو صفحه دارم که تو هر کدوم یه سری کد نوشتم

کالا با فشار هر دکمه اول pageload اجرا میشه بهد روال مربوط به هر دکمه

راهی هست که تو روال page_load بفهمیم کدوم دکمه فشار داده شده؟

ضمنا از page_prerender هم نمیتونم استفاده کنم

ممنون

nazaninam
سه شنبه 08 فروردین 1385, 18:02 عصر
دقیقا متوجه منظورتون نشدم اگه می خواهید اول page load اجرا نشه از if not ispostback استفاده کن یکم بیشتر توضیح بده

mirza
سه شنبه 08 فروردین 1385, 20:44 عصر
ممنون از توجهتون

ببینید من چند تا button رو صفحه دارم

در روال page load من باید با توجه کلیک این دکمه ها مقادیری رو صفحه نوشته میشه

مثلا اگه دکمه اول فشار داده بشه باید یه تکست باکس visible تغییر میکنه
یا اگه دومی کلیک بشه یه تکست باکس دیگه

مسئله اینه که من باید تو Page load متوجه بشم کدوم دکمه فشار داده شده
در حقیقت کدوم دکمه باعث postback فرمم شده
اگه توضیحات بیشتری نیازه دقیقا کاری رو میخوام انجام بدمو بنویسم
مرسی

mahdi_negahi
سه شنبه 08 فروردین 1385, 20:50 عصر
چرا این کار هارو توی روال کلیک انجام نمی دی

manager
سه شنبه 08 فروردین 1385, 21:20 عصر
بله این کار امکان داره.
وقتی کنترلی بر روی صفحه باعث PostBack بشه UniqueID اون کنترل داخل EVENTTARGET__ قرار می گیره و شمات می تونید این مقدار رو از
Request.Form("__EVENTTARGET") بخونید و با استفاده از یک swich و case به مقصود خودتون برسید.

nazaninam
سه شنبه 08 فروردین 1385, 23:06 عصر
از زیر روال خود اون باتن استفاده کنید

nazaninam
سه شنبه 08 فروردین 1385, 23:06 عصر
از زیر روال خود اون باتن استفاده کنید

mahdi_negahi
چهارشنبه 09 فروردین 1385, 00:39 صبح
اون که دوستمون گفته PostBack است که فشردن دکمه عمل PostBack نیست

Saeed_Taghvaee
چهارشنبه 09 فروردین 1385, 07:23 صبح
البته شاید دقیا همین عمل(PostBack) نباشه ولی یه جورایی کار هایی که انجام میشه موجب انجام این عمل بشه. (چون خاصیت Action تگ فرم در همه صفحات خود صفحه هست این کار نوعی پست بک تلقی میشه)در php یا Asp کلاسیک مقدار ها رو از رو خود معرفه میخوندیم. یعنی باید بنویسی در صورتی که صفحه پست بک بود تست کنی که کلیک شده یا نه. من فکر کنم کد زیر کار کنه (البته تستش نکردم) ولی اگه جواب نداد بگشین بیشتر روش کار کنم

if(Page.IsPostBack)
{
string aaa = Request.Form[Button1.ClientID];
if (aaa != null)
{
دکمه کلیک شده
}
else if(aaa == null)
{
دکمه کلیک نشده
}
}

mirza
چهارشنبه 09 فروردین 1385, 11:00 صبح
آقا سعید ممنون با این روش میشه این کارو انجام داد و کاملا جواب میده ولی

یه مشکل وجود داره اونم اینکه اگه دکمه هام تو یه Ajaxpanel باشن هیچ مقداری بر نمیگردونه

که بتونم مقایسه کنم فکر کنم چون تو Ajaxpanel صفحه postback نمیشه
string aaa1 = Request.Form[Button2.ClientID];

همیشه مقدار null بر میگردونه


راه حل نهایی همون راه اقای manager هست که تو Ajaxpanel هم جواب میده

ممنون از همه دوستان که راهنمایی کردن

manager
چهارشنبه 09 فروردین 1385, 21:59 عصر
آقا سعید ممنون با این روش میشه این کارو انجام داد و کاملا جواب میده ولی

یه مشکل وجود داره اونم اینکه اگه دکمه هام تو یه Ajaxpanel باشن هیچ مقداری بر نمیگردونه ...

می شه راجع به ajaxpanel توضیح بدین ؟

Saeed_Taghvaee
پنج شنبه 10 فروردین 1385, 13:19 عصر
یه کنترل معروفه که در صورتی که در پروژه و در صفحات خودتون اضافه کنید صفحتتتون به صورت آزاکس میشوند و فرایند پست بک و .... بدون پردازش سور وتوسط یه فایل جاوا اسکریپت انجام میشود.
این کنترل مثل یه پنل هست که همه کدی که در بین این کنترل نوشته شه به صورت ازاکس عمل خواهد کرد. این کنترل به هیچ وجه کامل نیست ولی برای طراحی های ساده و سریع و فرم های بسیار ساده کاربرد داره. (چون اگه صفحه فرمتون زیادی داینامیک بشه این کنترل قاطی خواهد کرد و ظظاهر فرم رو به کل داغون میکنه !)

mahdi_negahi
پنج شنبه 10 فروردین 1385, 13:22 عصر
خوب این کنترل کجا هست

Saeed_Taghvaee
پنج شنبه 10 فروردین 1385, 13:26 عصر
اینجاست البته ادرس سایتش هم بود که الان ندارم ولی تو فایل های داکیومنتشنش بگردی باید پیدا شه
نکته : این برای ورژن دو دات نت هست !

mirza
پنج شنبه 10 فروردین 1385, 18:25 عصر
من دارم تو یه پروه ازش استفاده میکنم گیر که زیاد میده
پوستمو کنده یه بار کار میکنه یه بار نه خدا به خیر کنه