PDA

View Full Version : اجرا نشدن کد UserControl



Al.Nop
سه شنبه 17 شهریور 1388, 13:33 عصر
سلام:لبخندساده:

من یک Linkbutton در Updatepanel گذاشتم که با کلیک بر روی اون یک uesrControl در یک Panel لود میشه . مشکل من اینه که تمام کد های Asp.net موجود در UserControl مربوطه به خوبی اجرا میشه ولی کد های JavaScript موجود در UserControl اجرا نمیشه . ولی با refresh شدن صفحه کد ها اجرا میشن .
چه جوری میشه کدهای جاوا اسکریپت UserControl بدون refresh در updatePanel اجرا شوند ؟
در ضمن من روش های مختلفی مثل

ScriptManager1.RegisterClientScriptInclude
یا
Page.RegisterClientScriptBlock
رو امتحان کردم ولی هیچ کدوم جواب نداد .

مرسی:چشمک:

Al.Nop
سه شنبه 17 شهریور 1388, 23:32 عصر
Any Help , Any Idia !

مهدی کرامتی
چهارشنبه 18 شهریور 1388, 00:08 صبح
این کدها قراره هنگام لود شدن صفحه اجرا شوند یا هنگام یک Event خاص؟

اگر قراره هنگام لود شدن صفحه اجرا شوند از ScriptManager.RegisterStartupScript استفاده کنید.

Al.Nop
چهارشنبه 18 شهریور 1388, 16:26 عصر
سلام.
مرسی از جوابتون .
قبل از هر چیز لازمه این رو بگم که اگه همین UC - user Control رو هنگام لود صفحه لود کنی به درستی کار میکنه !

و بعد :
همونطور که گفتم موقعی که یک LinkButton در Updatepanel کلیک میشه UC مربوط لود میشه .
پس دو جور میشه جلو رفت :

1- در صفحه اصلی هنگام یک Event خاص
2- در صفحه UC هنگام لود صفحه

در حالت اول Page.RegisterClientScriptBlock رو تست کردم -> بی نتیجه
در حالت دوم همونطور که شما فرمودین ScriptManager.RegisterStartupScript -> باز هم بی نتیجه

من فکر می کنم که علت این اشکال اینه که در Update panel این کار ها انجام میشه چون در غیر این صورت درست کار میکنه !

alireza_s_84
چهارشنبه 18 شهریور 1388, 18:05 عصر
سلام:
در کل اسکریپتهایی که در هنگام آپدیت محتوای صفحه به اون اضافه میشن اجرا نمیشن چه از آپدیت پانل استفاده کند و چه ایجکس معمولی و سفارشی .
بهترین کار اینه که تمامی کدهای جاوا رو توی یک فایل ذخیره کنید و اون فایل رو به صفحه اضافه کنید بدین صورت دیگه با لود شدن usercontrol مشکلی بوجود نمیاد.

البته در ایجکس سفارشی که می نویسیم میتونیم در متدی که صفحه رو آپدیت میکنه اینجوری یک اسکریپت رو بطور پویا به صفحه اضافه کنیم :



var newScript = document.createElement("script");
newScript.src = "SavedFile.js";
document.body.appendChild(newScript);



ضمنا اگه اسکریپتهایی که اضافه میکنیم بصورتی باشه که در هنگام لود شدن عملی رو انجام بدن (مثلا Alert کنه) اجرا نمیشه یعنی باید حتما دوباره کلیکی صورت بگیره تا اجرا بشه.
شما بگین با لود UserControl چه اسکریپتی اجرا میشه تا نحوه جاسازی اون توی آپدیت پانل رو بهتون بگم
مشکلی بود مطرح کنید تا راهنمایی کنم
alireza.salemian@gmail.com

Al.Nop
پنج شنبه 19 شهریور 1388, 21:18 عصر
سلام.
من در Uc چند تا Button دارم و می خوام رخداد onclick رو به صورت زیر اداره کنم :


$addHandler($get("<%=Button2.ClientID%>"), 'click', cp);


خوب اگر که از اول صفحه این کد رو لود کرد که دکمه ای به اسم button2 وجود نداره . اگر هم که جای دیگه باشه که اصلا قبل از رفرش اجرا نمیشه . پس چاره چیه ؟