PDA

View Full Version : فراخوانی صفحه aspx با استفاده از ajax



twelve
جمعه 04 بهمن 1387, 23:49 عصر
سلام
سوالم را با ذکر یک مقایسه بین php و asp.net میپرسم

در php برای استفاده از ajax ، در اغلب اوقات به این صورت عمل می کنند که کد هایی که قرار است سمت سرور اجرا شود را در فایلی مثلا با نام index_02.php می نویسند و در صفحه index.php با استفاده از xmlHttpRequest به آن متصل شده و دستورات آن را اجرا میکنند.در پایان نتایج حاصله را در صفحه index.php و مثلا در یک div نمایش میدهند.

حال سوال این است که آیا در Asp.net چنین کاری ممکن است ؟
آموزش جامعی برای استفاده از xmhttprequest در asp.net وجود دارد؟

ehsan2007
شنبه 05 بهمن 1387, 00:52 صبح
سلام
در دات نت هم همین کارو میکنن
این تکه کد جاوای آجاکس رو ببین


objXMLHTTPpop.open("GET", 'engine1.aspx?code=123&stat=city&ip=' + ip + '&rnd=' + Math.random());
objXMLHTTPpop.onreadystatechange = function() {
if (objXMLHTTPpop.readyState == 4 && objXMLHTTPpop.status == 200) {
strOutput = objXMLHTTPpop.responseText;
document.getElementById('divcity').innerHTML = strOutput;
}

'engine1.aspx?code=123&stat=city&ip
آدرس بالا کوئری یا هر چیزی میتونه باشه که خروجیش داخل divcity نشون داده میشه

Chabok
شنبه 05 بهمن 1387, 10:08 صبح
با سلام
همان طور که ehsan2007 فرمودند،کد جاوا اسکریپت شما هیچ فرقی نخواهد کرد .

و سمت سرور هم فقط باید نتایج تولید شوند .(یعنی فقط رشته برگشتی مورد نظر)

چون اغلب صفحات در asp.net بصورت پیش فرض دارای قسمت های تعریف شده عناصر HTML از جمله head,body,form و غیره هستند که اغلب برای نتایج فقط یک رشته مورد نظر ما است . نه کل یک صفحه .

به همین منظور باید صفحه مورد نظر خود را بدون عناصر اضافی تولید کنید .

اگر صفحه شما aspx بود و شامل عناصر تعریف شده بود می توانید به این صورت عمل کنید تا خروجی صفحه خالی شود و از نو خروجی را تولید کنید .

Response.Clear();
Response.Write("My Ajax Returned Values");
Response.Flush();
Response.End();

تقریبا از چنین روشی می توانید استفاده کنید .

روش بهتر که نیاز به این دردسرها را هم ندارد استفاده از Generic Handler ها می باشد :
http://barnamenevis.org/forum/showthread.php?t=138817

نمونه :
http://www.brainbell.com/tutorials/ASP/Generic_Handlers_(ASHX_Files).html
http://www.aspcode.net/Creating-an-ASHX-handler-in-ASPNET.aspx
http://www.developer.com/net/asp/article.php/3565541

موفق باشید .

twelve
شنبه 05 بهمن 1387, 20:51 عصر
ممنون ، آیا میشه با این روش ، ارسال و ثبت اطلاعات رو هم انجام داد ؟ البته قطعا مطمئنم که با دستکاری Action فرم و ور رفتن با توابع سمت کلاینت میشه اما در جستجوهایی که داشتم نمونه و یا آموزشی رو در این رابطه پیدا نکردم. اگر در این مورد هم کمک کنید ممنون میشم

Chabok
یک شنبه 06 بهمن 1387, 00:43 صبح
با سلام
روشی خاصی که نیست .

شما از همه چیز می توانید استفاده کنید . از Request برای گرفتن مقادیر ارسالی . ارتباط با دیتابیس .
من فقط ارسال نتایج به کلاینت که مهمترین بخش است را نوشتم .

وگرنه محدودیت خاصی در استفاده از امکانات نیست .