PDA

View Full Version : چگونگی دریافت id کنترلی که روی آن یک event ی اجرا شده



m2148059
یک شنبه 04 مهر 1389, 16:45 عصر
دوستان من می خواهم چند تا imagebutton در داخل صفحه قرار بدم و به ازای کلیک روی همه آنها یک تابع سمت سرور معرفی کنم . و بعد در سمت سرور ببینم روی کدام کنترل کلیک شده و بر اساس آن بگم یک کاری بکن . پس باید بدونم سمت کلاینت روی کنترل با چه id ی کلیک شده باید برای این کار چه کار کنم ؟
در کل می شه سمت سرور فهمید که الان چه کنترلی چه رویدادی روش انچام شده که الان اومده سمت سرور ؟
با تشکر ...

maxpayn2
یک شنبه 04 مهر 1389, 16:59 عصر
یک تابع داری که n تا پارامتر داره (n میتونه صفر باشه) ، یه پارامتر دیگه بهش اضافه کن که همون id دکمه ای هست که کلیک شده ، در رویداد کلیک دکمه ها تابع رو صدا میکنی و id دکمه رو بهش پاس میدی

m2148059
یک شنبه 04 مهر 1389, 17:30 عصر
تقریبا منظور شما را فهمیدم ولی اگر یک مثالم بزارید که عالی می شه
اما تا اینجا که فهمیدم فکر کنم منظورم را درست بیان نکردم پس بهتر می گم :
من می خوام بعدا که کاربر وارد صفحه شد بهش اچازه بدم که یکسری دکمه بسازه و به ازای کلیک اون دکمه ها یکسری اتفاقات بیفته که این اتفاقات قراره درون یک تابع تعریف یبشه . مثلا قراره تعریف بشه که به ازای کلیک این دکمه که کاربر خودش رو صفحه ساخته بره یکسری اطلاعات را در بانک با نام آن دکمه بزاره .

maxpayn2
یک شنبه 04 مهر 1389, 17:39 عصر
حالا قضیه فرق کرد ، باید در مورد form generator ها تحقیق کنی

m2148059
یک شنبه 04 مهر 1389, 18:34 عصر
ممنون دوست عزیز اگر لینکی ، کتاب آموزشی ای، مقاله ای چیزی دارید لطفا ذکر کنید یا اگر خودتان بلد هستید یک توضیحی بفرمایید . با تشکر

aserfg
دوشنبه 05 مهر 1389, 09:19 صبح
پارامتر sender برای همین کاره

m2148059
دوشنبه 05 مهر 1389, 09:59 صبح
تا آنجایی که من دیدم sender اون id کنترل رو بر نمی گردونه بلکه فقط می گه کنترل چه نوعی است مثلا button است یا imagebutton اما نمی گه این ارسال event توسط کنترل با id مثلا x انجام شده .اگر اشتباه می گم با مثال برام توضیح دهید تا برام روشن بشه .

aserfg
دوشنبه 05 مهر 1389, 10:46 صبح
دوست عزیز ابتدا شما یک نمونه از اونتعریف کرده و بعد از خاصیت id اون استفاده کنید:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
ImageButton m = (ImageButton)sender;
if (m.ID=="ImageButton1")
{
Response.Write("شما روی دکمه شماره یک کلیک کردید");
}
}
و برای اینکه نحوه دقیق کار رو ببینید دو تا imagebutton روی صفحه قرار بدین و مانند زیر عمل کنید :

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
myfunction(sender);

}

protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{myfunction(sender);

}
protected void myfunction(object sender)
{
ImageButton m = (ImageButton)sender;
if (m.ID=="ImageButton1")
{

Response.Write("شما روی دکمه شماره یک کلیک کردید");
}
else
{
Response.Write("شما روی دکه شماره دو کلیک کرده اید");
}
}

m2148059
دوشنبه 05 مهر 1389, 11:52 صبح
آقا کاش می شد بیشتر تشکر کرد می گم یه چند تا پاسخ دیگه بدهید هی تشکر کنم :لبخندساده:
مشکلم حل شد واقعا ممنون .:قلب: