您可以在不使用ajax工具包的情况下在ASP.net webform上执行ajax吗? (请张贴一个例子链接)你可以不使用ASP.net ajax工具包来做ajax吗?
回答
当然可以!我在.NET 1.1中做了什么(在ASP.Net Ajax发布之前)是定义一个HttpHandler
来侦听对ajax.aspx
的调用,运行适当的方法,然后吐出结果。我使用Prototype library来进行Ajax调用,尽管您可以使用任何其他方法,或者手动完成。
我的记忆去,但这里是我使用的代码(.NET 2.0,但你的想法):
// client-side js:
var foo = new Ajax.Request('ajax.aspx',
{
method:'get',
parameters: { method: 'GetFive' },
onSuccess: function(transport){
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
},
onFailure: function(){ alert('Something went wrong...') }
});
// web.config:
<httpHandlers>
<!-- pre existing handlers go here -->
<add verb="GET" path="ajax.aspx" type="Fully.Qualified.Name.AjaxHandler, AssemblyName" validate="false" />
</httpHandlers>
// AjaxHandler.cs
public class AjaxHandler : IHttpHandler {
internal delegate object AjaxFunction();
private Dictionary<string, AjaxFunction> functions;
public bool IsReusable {
get { return true; }
}
public void ProcessRequest(HttpContext context) {
this.functions = new Dicionary<string, AjaxFunction>();
this.functions.Add("GetFive", delegate() {
return 5;
});
string functionName = context.Request["method"];
AjaxFunction func = this.functions[functionName];
if (func != null) {
object val = func();
context.Response.Write(val);
}
}
}
[大注:以上是未经检验的,而不是真正设计好,甚至可能不会编译,但它应该给你正确的想法。]
当然。人们在阿贾克斯这个词甚至被创造出来之前已经做了好几年了。 Jquery是一个非常受欢迎的库,您可以使用它来在不刷新页面的情况下将调用回服务器。
这是一个流行的工具:AjaxPro。
正如其他人所指出的,您可以使用XmlHttpRequest对象和JavaScript自己编写整个东西。但是,如果你的应用程序将使用非常复杂的技术,自己编写代码变得非常繁琐。这些工具变得更加强大和易于使用。
另外,ASP.Net Ajax有两个元素。一种是Visual Studio 2008中包含的Ajax扩展,可以将其添加到Visual Studio 2005.与“工具箱”相比,这可以用于更多的功能。像部分页面刷新和检索数据而不执行完整回发。另一个是Ajax Control Toolkit,它是一个单独的下载。 “工具箱”主要包括花哨的控件,特别是具有DHTML效果(显示,隐藏,模仿动画)的控件。
绝对是哦。
存在诸如jQuery之类的库,您可以在ASP.NET窗体中使用这些库,而不是UpdatePanel以及围绕它的所有工具。
我曾经工作过的地方早在有一个词出现之前就已经在做AJAX了。这是在我们的东西只用于在IE中工作的日子:-)
您需要在ASP.NET窗体中使用ASP.NET服务器控件执行的一件事是使用正确的客户端ID服务器在从JavaScript引用它们时为您的控件生成。所以如果你有一个ID为'telephoneNumber'的标签,你需要将它作为<%= telephone.ClientID%>。例如
$("#<%=telephoneNumber.ClientID %>").attr("disabled", "disabled");
对于像jQuery这样的库,您仍然可以调用您的ASP.NET Web服务,但您可能更适合调查WCF和JSON序列化。
您不必在ASP中扔掉所有东西。NET ajax位,我仍然使用脚本服务调用Web服务。这是一个一半的房子,直到我可以用JSON替换:
阿贾克斯只是意味着当用户在看你的网页,使用JavaScript,返回到服务器并获取别的东西。然后使用javascript,DOM更新所提取内容的页面。
XMLHttpRequest对象是很好的,但在此之前,即使它,你可以使用一个隐藏的iframe做同样的事情....
这里是所有你需要开始的JavaScript代码:
function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
// do something with xmlHttp.responseText
}
}
function SendAsyncHttpRequest()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
return
}
var url = "http://YOUR_URL"
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
是的!
有一个“gazillion”替代ASP.NET AJAX那里。 其中大部分其实也是比较好的。你可能想看看我的项目; Ra-Ajax为您的需求:)
- 1. ASP.NET AJAX工具包CalendarExtender不工作C#
- 2. ASP.NET AJAX GUI工具包
- 3. AJAX工具包ASp.net MVC
- 4. 我可以使ModalPopupExtender为非模态吗? - AJAX工具包
- 5. 你可以在ASP.NET中使用迭代Ajax表单吗?
- 6. 使用AJAX功能的JQuery或AJAX工具包的ASP.Net?
- 7. ASP.NET MVC&ASP.NET AJAX工具包AutoCompleteExtender
- 8. Ajax工具包TabContainer
- 9. Ajax工具包错误
- 10. jquery:你可以在$(window).unload()中做一个ajax请求吗?
- 11. ASP.NET AJAX工具包通信问题
- 12. ASP.NET AJAX控件工具包:条件ModalPopup
- 13. asp.net ajax控制工具包滑块
- 14. ASP.NET AJAX控件工具包ModalPopupExtender + HTML + JavaScript
- 15. ASP.NET AJAX工具包 - CalendarExtender上回发
- 16. ASP.NET AJAX控件工具包的安装
- 17. ASP.NET AJAX工具包的安全异常
- 18. 6kb的UpdatePanel Asp.net Ajax工具包
- 19. 局部视图可以用来做Ajax项目更新吗?
- 20. Ajax工具包AutoCompleteExtender和javascript
- 21. 错误调试使用Ajax工具包
- 22. JQuery工具:你可以在ajaxed选项卡内嵌入非ajax选项卡吗?
- 23. Ajax工具包和MVC 2
- 24. 你可以使用Ajax上传图片吗?
- 25. 如何使用ASP.NET Script-Only ajax控件工具包中的ModalPopup?
- 26. 如何使用CDN中的Asp.net Ajax控件工具包?
- 27. 使用ASP.NET AJAX控件工具包设置焦点
- 28. Ajax的最佳工具包?
- 29. 你可以使用nhibernate来做这样的子查询吗?
- 30. asp.net ajax不工作
它可能需要更长的时间才能入门,但不是一旦你有一个好的图书馆为自己。另外,当你控制图书馆时,你可以做什么的限制较少。 – Kibbee 2008-10-24 20:29:08