我们计划使用jQuery库来增强客户端JavaScript需求。
尝试同时使用ASP.Net AJAX和jQuery有什么重大问题吗?这两个库似乎都将$用于特殊目的。我们需要注意哪些冲突?
我们还使用使用ASP.Net AJAX的Telerik控件。
TIA
我们在大型项目上使用ASP.NET Ajax,jQuery和Telerik组件已有一段时间了,并且没有任何问题
我肯定会推荐使用jQuery
jQuery有一个noConflict()方法作为核心的一部分,但它要求你使用jQuery作为你的命名函数或你选择的其他东西(而不是美元选择器)。但是,我会说这种方法通常依赖于“竞争”库的实现。我曾尝试将它用于Ning社交网络(使用Dojo)和Magento(使用Prototype),我无法使用jQuery。这只是我的个人经历,而其他人则非常成功。
ASP.NET Ajax的开发人员采取了特定的步骤来确保库可以与jQuery一起使用。
例如,ATLAS CTP(成为ASP.NET Atlas的beta版)曾经有一个$()函数,但它被删除并替换为$ get()。
一个缺点是服务器端控件可以重命名,具体取决于它们的容器。例如,您可能有:
<asp:panel id="panel1" runat="server"></asp:panel>
这可以呈现给页面:
<div id="ctl00$panel1"></div>
因此,如果您使用$('#panel1')
作为选择器编写jQuery,它将无法工作。解决这个问题的方法是动态生成id,例如:
Dim js as String = "$('" & panel1.ClientID & "').whatever();"
这可能会使javascript有点不可读,但它确实很有效。我使用这种方法处理大型Web应用程序,jQuery为我们节省了大量时间,更不用说让网站外观和工作更好了。
对于它的价值,jQuery的$函数和ASP.NET AJAX的$前缀快捷函数($ get,$ find,$ create等)之间没有冲突。与使用变量f一样,不会阻止您使用名为foo的变量。
在大多数情况下,jQuery和ASP.NET AJAX可以很好地协同工作。在过去的一年中,我唯一一次看到ASP.NET AJAX打破jQuery代码就是this scenario with jDrawer。解决方法虽然不错。
我一直在使用ext这是另一个带.net的javascript框架。它比旧式HTML表单控件更容易使用
<input type="text" id="whatever" />
比使用ASP.net表单控件。你可能想要使用酷的javascript框架表单验证,而不是那些内置的.net验证器,但我想这取决于你的偏好
如果您确实想要继续使用.net控件,请记住标记中生成的ID与您定义的ID不同,因此如果您想在JS中使用id引用控件,请使用:
<%=MyControlId.ClientID%>
与此问题相关的最新发展:
Scott Guthrie于2008年9月28日发布(请参阅:http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx),微软实际上将开始使用Visual Studio发布JQuery。 MVC项目默认包含库。 Scott表示,这是在JQuery团队的同意和鼓励下完成的。
查看full details的原始帖子。
显然,Telerik已经开始从版本Q3开始向他们的一些RadControl添加jQuery。
我同时使用jQuery和RadControls,但没有时间进一步研究这种纠缠......可以双向摆动...... 我有一种全新的感觉,这需要更多的clusterf ***,但这只是基于一些经验和一些这一点;-)
在这个主题上查看Atanas Korchev在Telerik的博客: http://blogs.telerik.com/AtanasKorchev/Posts/08-11-06/ASP_NET_Ajax_Controls_and_jQuery.aspx
当MS,jQuery,Telerik,摩根大通和麦当劳在我们的台式机上混合和混合时,我们都祝你好运... ;-)
我已经在ASP.NET Ajax中使用了jQuery,因为它们都做得很好。我从来没有遇到过将两者结合使用的问题。实际上,我通过使用超级强大的jQuery选择器绕过了奇怪的ASP.NET id mishmash。通过能够选择元素的类和子元素(基本上是CSS),它使得它非常容易使用。