• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

برقراری ارتباط بین کدهای سمت سرور و سمت کلاینت

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
سلام،
کسی می دونه تو محیط VS.net تو یه webform اگر یه اسکریپت سمت کلاینت بنویسیم (که اون طور که من می دونم باید تو فایل aspx نوشتش) بعد تو یکی از قسمتهای کد vb.net (فایل aspx.vb) مثلاً تو click event یه button بخوایم از اون اسکریپت سمت کلاینت استفاده کنیم (مثلا یه تابع ساده از اون اسکریپت رو صدا بزنیم) چی کار باید بکنیم؟
اصلاً عملی هست یا نه ؟!!
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از winter :
سلام،
کسی می دونه تو محیط VS.net تو یه webform اگر یه اسکریپت سمت کلاینت بنویسیم (که اون طور که من می دونم باید تو فایل aspx نوشتش) بعد تو یکی از قسمتهای کد vb.net (فایل aspx.vb) مثلاً تو click event یه button بخوایم از اون اسکریپت سمت کلاینت استفاده کنیم (مثلا یه تابع ساده از اون اسکریپت رو صدا بزنیم) چی کار باید بکنیم؟
اصلاً عملی هست یا نه ؟!!

همونطوری که توی جاوا اسکریپت با دکمه ها ، لینک ها و داپ دان ها برخورد میکنی ، همونطوری میتونی جاوا اسکریپتش رو توی وب کنترل های دات نت هم بذاری . توی تگ هرکدوم .

فهمیدی چطوری میگم ؟؟ اگه نه مثلا بگو میخوای چیکار کنی تا بهت بگم چطوری میشه .
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
به نقل از H_R :
همونطوری که توی جاوا اسکریپت با دکمه ها ، لینک ها و داپ دان ها برخورد میکنی ، همونطوری میتونی جاوا اسکریپتش رو توی وب کنترل های دات نت هم بذاری . توی تگ هرکدوم .

فهمیدی چطوری میگم ؟؟ اگه نه مثلا بگو میخوای چیکار کنی تا بهت بگم چطوری میشه .
اگر درست فهمیده باشم منظورت از گذاشتن جاوا اسکریپت توی تگ کنترلها اینه که این اسکریپت ها رو توی تگ هایی بنویسیم که تو فایل aspx ساخته می شن. این کارو گاهی اوقات میشه کرد و من هم کردم ولی من می خواستم ببینم میشه این اسکریپت ها رو توی صفحه aspx.vb بین کدهای vb.net هم استفاده کرد؟
مثلاً فرض کن تو click event یه button بخوایم یه sqlcommand که توش یه دستور insert هست اجرا کنیم. این دستور insert چند تا پارامتر داره که همشون از کنترل های روی فرم جمع میشند غیر یه پارامتر که باید با یه فرمول پیچیده از اطلاعات فرم محاسبه بشه. حالا فرمول این محاسبه تو یه تابع جاوا اسکریپت نوشته شده ولی ما الآن وسط کد vb (تو فایل aspx.vb) به اسکریپتی که تو فایل aspx نوشته شده دسترسی نداریم (یعنی من بلد نیستم داشته باشم!) حالا فکر می کنی راهی داره؟

البته این رو هم بگم که اون تابع محاسبه اون فرمول رو میشه با خود vb هم نوشت که شاید راحت تر هم باشه (من هم تا حالا همین کار رو کردم) ولی خوب از لحاظ تکنیک به نظر میرسه که تا اونجا که بتونیم محاسبات رو به جای سرور سمت کلاینت انجام بدیم بهتر باشه.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از winter :
اگر درست فهمیده باشم منظورت از گذاشتن جاوا اسکریپت توی تگ کنترلها اینه که این اسکریپت ها رو توی تگ هایی بنویسیم که تو فایل aspx ساخته می شن. این کارو گاهی اوقات میشه کرد و من هم کردم ولی من می خواستم ببینم میشه این اسکریپت ها رو توی صفحه aspx.vb بین کدهای vb.net هم استفاده کرد؟
مثلاً فرض کن تو click event یه button بخوایم یه sqlcommand که توش یه دستور insert هست اجرا کنیم. این دستور insert چند تا پارامتر داره که همشون از کنترل های روی فرم جمع میشند غیر یه پارامتر که باید با یه فرمول پیچیده از اطلاعات فرم محاسبه بشه. حالا فرمول این محاسبه تو یه تابع جاوا اسکریپت نوشته شده ولی ما الآن وسط کد vb (تو فایل aspx.vb) به اسکریپتی که تو فایل aspx نوشته شده دسترسی نداریم (یعنی من بلد نیستم داشته باشم!) حالا فکر می کنی راهی داره؟

البته این رو هم بگم که اون تابع محاسبه اون فرمول رو میشه با خود vb هم نوشت که شاید راحت تر هم باشه (من هم تا حالا همین کار رو کردم) ولی خوب از لحاظ تکنیک به نظر میرسه که تا اونجا که بتونیم محاسبات رو به جای سرور سمت کلاینت انجام بدیم بهتر باشه.

ببین جاوا اسکریپت وقتی کار میکنه که صفحه تو روی کلاینت بارگزاری شده درسته ؟؟ خوب بعد از بارگزاری دیگه نمیتونی اطلاعاتی به سرور بفرستی ( مگه از AJAX استفاده کنی که اون حسابش جداست ) فقط یه راه داری اونم اینه که قبل از بارگزاری اطلاعات روی کلاینت اطلاعات رو از کلاینت بگیری (یعنی دقیقا وقتی دکمه submit زده میشه ) خوب تو آلان میتونی تمام محاسباتت رو منوط به اینکه اطلاعاتش رو از قبل رو کلاینت بارگذاری کرده باشی انجام بدی و نتیجه رو در قالب یک input hidden به سرور برگردونی .

تنها کاری که توی سرس دات نت میتونی بکنی (تاجایی که من میدونم ) اینه که بیای و جاوا اسکریپت رو به فرمت تزریق کنی که اونم همچین فرقی با نوشتن توی وب فرم نداره حالا مقاله من توی http://rooznamechi.blogspot.com/2006/03/aspnet_29.html یه نومنه از این کار رو نشون میده .

موفق باشی
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
به نقل از H_R :
ببین جاوا اسکریپت وقتی کار میکنه که صفحه تو روی کلاینت بارگزاری شده درسته ؟؟ خوب بعد از بارگزاری دیگه نمیتونی اطلاعاتی به سرور بفرستی ( مگه از AJAX استفاده کنی که اون حسابش جداست ) فقط یه راه داری اونم اینه که قبل از بارگزاری اطلاعات روی کلاینت اطلاعات رو از کلاینت بگیری (یعنی دقیقا وقتی دکمه submit زده میشه ) خوب تو آلان میتونی تمام محاسباتت رو منوط به اینکه اطلاعاتش رو از قبل رو کلاینت بارگذاری کرده باشی انجام بدی و نتیجه رو در قالب یک input hidden به سرور برگردونی .

تنها کاری که توی سرس دات نت میتونی بکنی (تاجایی که من میدونم ) اینه که بیای و جاوا اسکریپت رو به فرمت تزریق کنی که اونم همچین فرقی با نوشتن توی وب فرم نداره حالا مقاله من توی http://rooznamechi.blogspot.com/2006/03/aspnet_29.html یه نومنه از این کار رو نشون میده .

موفق باشی
آره خوب وقتی ترتیب بارگذاری رو در نظر بگیریم خواسته من یه کم غیر منطقی به نظر میرسه. اینکه نتیجه رو بذارم تو input hidden اتفاقاً به نظرم رسیده بود فقط مشکلش اینه که محاسبه باید موقع load فرم انجام بشه که اونوقت اگه کاربر اصلاً submit نکرد و رفت به صفحه دیگه اونوقت محاسبه بی خودی انجام شده!

این نوشتتم که لینک دادی اتفاقاً قبلاً دیدم. فقط اونطور که من میدونم اسکریپت هایی که تو فرم تزریق میشن همون سمت سرور اجرا میشن. این درسته یا من اشتباه میکنم؟

ضمناً اینکه می گفتی جاوا اسکریپت رو میشه توی تگ وب کنترلها بنویسیم و من هم گفتم قبلا این کارو کردم...امروز خواستم امتحانش کنم دیدم error میده!

مثلاً اگه بنویسم <asp:Button id="Button1" runat="server" Text="Button" onclick='alert("Hi")'></asp:Button>

صفحه اصلاً load نمیشه و این error رو میده : Compiler Error Message: BC30456: 'alert' is not a member of 'ASP.WebForm4_aspx'.

در حالی که اگه از html button به جای asp button استفاده کنم درست اجرا میشه. منظور تو از وب کنترل همون کنترلهای asp بود یا من درست متوجه نشدم؟!!

حالا اگه سوال دیگه ای هم به ذهنم رسید می پرسم!!!

مرسی.
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
آقا چی شد پس؟ بحث تازه شیرین شده بودا !!!

این رسم این فرومه؟!! آخه دفعه دومه که من یک تاپیک باز می کنم وسط راه میخورم تو دیوار !!!

من هنوز نتونستم این مشکلمو حل کنم. تو تگ کنترلهای asp (هر تگی که با :aps> شروع میشه) نه می تونم به اسکریپت ساده بنویسم حتی یه alert نه یه تابع جاواسکریپت رو صدا بزنم. موقع load شدن error میده. ولی جالبه که خود مایکروسافت هم تو مثالهای msdn این کارو کرده. یعنی ممکنه این تفاوت asp.net 2 با 1 باشه. چون من تو محیط vs.net 2003 کار می کنم.

خلاصه نظر بدین ممنون میشم!
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از winter :
آقا چی شد پس؟ بحث تازه شیرین شده بودا !!!

این رسم این فرومه؟!! آخه دفعه دومه که من یک تاپیک باز می کنم وسط راه میخورم تو دیوار !!!

من هنوز نتونستم این مشکلمو حل کنم. تو تگ کنترلهای asp (هر تگی که با :aps> شروع میشه) نه می تونم به اسکریپت ساده بنویسم حتی یه alert نه یه تابع جاواسکریپت رو صدا بزنم. موقع load شدن error میده. ولی جالبه که خود مایکروسافت هم تو مثالهای msdn این کارو کرده. یعنی ممکنه این تفاوت asp.net 2 با 1 باشه. چون من تو محیط vs.net 2003 کار می کنم.

خلاصه نظر بدین ممنون میشم!

برای خود فرمت onSubmit بذار اگه برای دکمه این کار رو بکنی با onclick فقط وقتی کلیک روی دکمه میشه جاوا اسکریپتت فعال میشه ، ولی خیلی ها فرمشون رو با اینتر سابمیت میکنن ! پس باید کار اونا رو هم راه بندازی !!!

مثال خوب در این باره ولیدتور های خود دات نت اه که با جاوا اسکریپت کار میکنن ببین خودش چیکار کرده تو هم همون کار رو بکن !
 
بالا