PDA

View Full Version : مشکل در کار با وب متد



zareenaz
شنبه 15 اسفند 1388, 09:44 صبح
من میخوام یک وب متد بنوییسم ولی با مشکل بر خوردم
وب متد من توی یک uc هستش مجبور شدم وب متدی توی صفحه استفاده کننده از Usercontrolام بذارم که تابع مورد نظرم را در uc صدا بزنه ولی مشکل اینجاست که کد زیر را که می نویسم uc1 که همون usercontrol توی صفحه هست مقدار null داره و من نمی تونم تابعش را صدا بزنم :افسرده: :عصبانی++:



[System.Web.Services.WebMethod]
publicstaticvoid OkCheque()
{
ASP.admin_default_aspx d = (ASP.admin_default_aspx)HttpContext.Current.Handle r;
if (d.c!= null)
d.c.Ok();
}


که c همون UC توی صفحه هست
اگر ممکنه راه حلی برام بذارید متشکرم

mehdi.mousavi
شنبه 15 اسفند 1388, 13:25 عصر
من میخوام یک وب متد بنوییسم ولی با مشکل بر خوردم
وب متد من توی یک uc هستش مجبور شدم وب متدی توی صفحه استفاده کننده از Usercontrolام بذارم که تابع مورد نظرم را در uc صدا بزنه ولی مشکل اینجاست که کد زیر را که می نویسم uc1 که همون usercontrol توی صفحه هست مقدار null داره و من نمی تونم تابعش را صدا بزنم :افسرده: :عصبانی++:



[System.Web.Services.WebMethod]
publicstaticvoid OkCheque()
{
ASP.admin_default_aspx d = (ASP.admin_default_aspx)HttpContext.Current.Handle r;
if (d.c!= null)
d.c.Ok();
}
که c همون UC توی صفحه هست
اگر ممکنه راه حلی برام بذارید متشکرم

سلام.
برای اینکار نباید متود رو داخل UserControl بذارید. شما میتونید با ایجاد یک وب سرویس، کار شایسته تری انجام بدید. ضمن اینکه من نمیدونم این روش برای فراخوانی یک متود رو از کجا آورده اید، اما بهتون اطمینان میدم اینکار صحیح نیست. فراخوانی Web Method یا Page Method ها اصولی داره که میتونید با خوندن چند صفحه کتاب، یا جستجو در MSDN یا گوگل، با این روشها آشنا بشید.

پاورقی: میتونید برای آشنایی با این روشها، این سوال و جوابها (http://forums.ASP.NET/t/1528982.aspx) رو هم بخونید.

zareenaz
شنبه 15 اسفند 1388, 15:16 عصر
جناب اقای موسوی
با روشی که شما فرمودید نوشتم ولی هیچ جواب نمیده اگر ممکنه پروژه تستی که ساختم را پیوست کردم نگاهش کنید من نمیدونم کجا اشتباه کردم

mehdi.mousavi
شنبه 15 اسفند 1388, 15:35 عصر
جناب اقای موسوی
با روشی که شما فرمودید نوشتم ولی هیچ جواب نمیده اگر ممکنه پروژه تستی که ساختم را پیوست کردم نگاهش کنید من نمیدونم کجا اشتباه کردم

سلام.
من کد شما رو دیدم، اما هیچ جا ندیدم از Client Callback ها استفاده کرده باشید. شما دارید از jQuery برای GET کردن یک URL استفاده میکنید. اسم این Client Callback نیست! Client Callback یکی از قابلیتهای ASP.NET هستش...

در هر حال، (حداقل) دو ایراد بزرگ در کد شما وجود داره. یکی اونجایی که نوشته اید:

var date = document.getElementById('<%#Txt_Date.ClientID %>');

این کد از این جهت ایراد داره که شما قرار نیست اینجا چیزی رو Bind کنید، فقط میخواهید ID یک کنترل رو بگیرید. برای انجام صحیح اینکار، باید جای # از = استفاده کنید.

ایراد دوم، توی این خط هستش:

jquery.get(strPath, null, null, 'html');

شما جای jquery باید بنویسید jQuery. یادتون باشه که javascript به بزرگ/کوچک بودن حروف، حساسه.

این دو مساله مورد رو درست کنید، URL مورد نظر با موفقیت توسط دستور get دریافت میشه.

موفق باشید.