PDA

View Full Version : سوال: ایجاد event در codeBehind برای کنترل های Html



Ahsani
یک شنبه 24 فروردین 1393, 12:34 عصر
با سلام و عرض خسته نباشید به همه.
نمی دونم سوالم رو جای درستی پرسیدم یا نه!
من یه html dropdown تو صفحه دارم که دارای چند تا مقداره. حالا می خوام ببینم من چی شکلی می تونم با این کار کنم؟
تا حالا من با کنترل های html کار نکردم ولی تا دلتون بخواد با کنترل های خود asp کار در CodeBehind به زبان #C کردم. به صورت داینامیک مقدار دادم و از SelectedIndexChange کلی استفاده کردم و . . .
ولی الان میخوام با همین کنترل html هم همین کارارو انجام بدم. میشه راهنماییم کنیم که میشه یا نمیشه و اگه بشه چطور میشه این کارو کرد؟
موضوع اینه که به جای این کنترل هم نمیتونم از کنترل های خود asp استفاده کنم! :ناراحت:
ممنون . . .

Mag-Mag
یک شنبه 24 فروردین 1393, 14:09 عصر
سلام
در اینجا دقیقا مثل اون
SelectedIndexChange شما
onchange رو در اختبار دارید
مثلا میگی


onchange="doCahange()"

که doCahange یک تابع جاوا اسکریپت هست.حالا توی اون تابع جاوا اسکریپت فرمت رو submit کن و یک input رو مقدار دهی کن
مثلا


document.GetElementById('Action').value = "Change";

که Action هم اینه


<input type='hidden' name='Action' id='Action' />

حالا سمت سرور میگی

if(Request["Action"]=="Change")
//یک تابع رو فراخونی کن

Ahsani
یک شنبه 24 فروردین 1393, 16:50 عصر
ممنون بابت راهنمایی ولی من گنگ موندم.
اولن از کجا بفهمم کدوم ایندکسم انتخاب شده؟ دوما بعد از مقدار دهی چی شکلی تو سمت سرورتشخیص بدم که اصلا event رخ داده یا نه!
چون تو کار با کنترل های asp تو سمت سرور event که رخ می داد تو تابعش کدهامون رو مینوشتیم.
شرمنده ها! من تا حالا اینجوری کار نکردم برا همین یه ذره دوزاریم دیر میوفته . . .

Mag-Mag
یک شنبه 24 فروردین 1393, 17:09 عصر
اولن از کجا بفهمم کدوم ایندکسم انتخاب شده؟
در تابع جاوا اسکریپت با document.GetElementById('id hamoon select').value می تونی مقدار انتخابی در select رو بدست بیاری
در ضمن dropdown در asp اینطوری هست ها و بهش می گن select


<select name='SubCategoryId' id='SubCategoryId' onchange="doCahange()"> <option value="-1">-----------</option> <option value="1">Item1</option> <option value="2">Item2</option></select>



دوما بعد از مقدار دهی چی شکلی تو سمت سرورتشخیص بدم که اصلا event رخ داده یا نه


در تابع جاوا اسکریپت اون Action رو که مقدار دهی کردی فرمت رو باید submit کنی
این طوری

document.GetElementById('id tag form').submit();

خالا سمت سرور با همون if که گفتم می تونی بفهمی که event رخ داده
همون if(Request)....

mRizvandi
دوشنبه 25 فروردین 1393, 10:50 صبح
دوست خوبمون راه کار رو گفتن، ولی سوال اینه که به چه دلیلی دارید دوباره ASP.NET رو پیاده سازی می کنید؟
از همون کنترل asp.net استفاده کنید. و اگر در سمت کلاینت به این کنترل نیاز دارید، راه کار ساده ای برای این موضوع هست.

Ahsani
سه شنبه 26 فروردین 1393, 13:48 عصر
دوست خوبمون راه کار رو گفتن، ولی سوال اینه که به چه دلیلی دارید دوباره ASP.NET رو پیاده سازی می کنید؟
از همون کنترل asp.net استفاده کنید. و اگر در سمت کلاینت به این کنترل نیاز دارید، راه کار ساده ای برای این موضوع هست.

من عرض کردم، متاسفانه تا حالا با کنترل های html کار نکردم. در نتیجه زیاد تسلط ندارم. ولی بدلیل طراحی صفحه ام نمی تونم هم از کنترل asp استفاده کنم. میشه توضیح بدین . . .

mRizvandi
سه شنبه 26 فروردین 1393, 13:54 عصر
کنترلهای ASP.NET در آخر به کنترلهای HTML تبدیل میشوند، پس تفاوتی در نهایت کار نیست.
اما اگر می خواهید به کنترلهای سروی در سمت کلاینت دسترسی راحتی داشته باشید، مثلا با استفاده از جاوااسکریپت یا جی کوئری روی آنهای کاری انجام بدید کافیه که خصوصیت ClientIDMode کنترل رو روی Static قرار بدید.
شما سناریتون رو بگید تا دوستان بهتر بتونن راهنمایی کنن.


ولی بدلیل طراحی صفحه ام نمی تونم هم از کنترل asp استفاده کنم
دلیلتون برای این صحبت چی هست؟ این رو به همراه سناریوی کارتون عنوان کنید نتیجه بهتری می گیرید.