PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مسخره های asp.net



آبجی
14th February 2010, 04:10 PM
تما تا به حال کدهایی رو دیدید یا نوشتید که به نظر هیچ مشکلی ندارن اما در عمل کاری که ازشون انتظار میره رو انجام نمیدن (به کدها شخصیت دادم! :D)
خوبه که از این به بعد در برخی مطالب این وبلاگ به بعضی از این کدها اشاره کنم…
در جایی نیاز بود که در روال RowDataBound کنترل GridView، قبل از اجرای روال Server-Side دکمه، یک روال Client-Side اجرا بشه.
تابع JS من یک پارامتر ورودی داشت که نام یک TextBox رو میپذیرفت.
ما انسان ها معمولا از خاصیت جدید OnClientClick دکمه ها در ASP.NET 2.0 بدین منظور استفاده می کنیم.
myButton.OnClientClick = “return myFunction(’myTextBox’);”

این TextBox در Footer قرار داشت و نامش مشخص بود.
به نظر کد فوق باید به درستی کار کنه! غیر از اینه؟
اما نه! انگار نه انگار که روال Client-Side ای تعریف شده!
در این مواقع چه باید کرد؟ کمی جانگولر بازی! کمی ور رفتن با کدها…
جانگولر بازی من به شکل زیر بود:

myButton.OnClientClick = String.Concat(”return myFunction(’”, e.Row.FindControl(”myTextBox”).ClientID, “‘);”)

و حالا جواب داد!
تفاوت کدهای فوق در چیه؟ هیچی!
اگر سورس HTML صفحه رو در هر دو حالت ببینید هیچ تفاوتی مشاهده نمیشه اما عجیب اینکه تنها کد دوم کار میکنه!

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد