2008-09-15 12 views
12

Estamos planeando utilizar la biblioteca JQuery para aumentar nuestras necesidades de JavaScript en el lado del cliente.Cualquier inconveniente de utilizar ASP.Net AJAX y JQuery juntos

¿Hay algún problema importante al tratar de utilizar ASP.Net AJAX y JQuery? Ambas bibliotecas parecen usar $ para fines especiales. ¿Hay algún conflicto que debemos tener en cuenta?

También utilizamos controles Telerik que utilizan ASP.Net AJAX.

TIA

Respuesta

9

Hemos utilizado componentes ASP.NET Ajax, jQuery y Telerik en un proyecto grande durante bastante tiempo y no hemos tenido ningún problema

Sin duda, recomendaría el uso de jQuery

5

jQuery tiene un método noConflict() como parte del núcleo, pero luego requiere que use o bien jQuery como su función llamada o alguna otra cosa de su elección (en lugar del selector de dólar). Sin embargo, diré que el método a menudo depende de la implementación de la biblioteca "competidora". Intenté usarlo para una red social Ning (que usó Dojo) y para Magento (que usa Prototype), y tampoco pude jugar bien con jQuery. Esta es solo mi experiencia personal, y otras han tenido mucho éxito.

http://docs.jquery.com/Core/jQuery.noConflict

3

Los desarrolladores de ASP.NET Ajax tomaron medidas específicas para asegurarse de que la biblioteca se pudiera usar junto con JQuery.

Por ejemplo, el ATLAS CTP (el beta que se convirtió en ASP.NET Atlas) solía tener una función $(), pero se eliminó y se reemplazó por $ get().

+0

Errhhh ... Hicieron los pasos necesarios para asegurarse de que ASP.NET AJAX funcionaba con * prototype *, de hecho, porque JQuery era un "proyecto de pasatiempo oscuro para este tipo que trabajaba para Mozilla", mientras que el prototipo generaba el 46% de todos principales sitios web en el mundo ...;) –

1

He estado usando ext, que es otro framework de JavaScript con .net. Es mucho más fácil de usar que los controles de formulario HTML antiguos

<input type="text" id="whatever" /> 

que el uso de controles de formulario ASP.net. Probablemente desee utilizar la valiosa validación de formularios de javascript framework en lugar de los no muy buenos validadores de .NET incorporados, pero supongo que eso depende de su preferencia

Si desea continuar usando controles .net, recuerde que el identificador generado en el marcado es diferente a lo que usted define, por lo que si desea hacer referencia a un control por ID en uso JS:

<%=MyControlId.ClientID%> 
2

una desventaja es que los controles del lado del servidor pueden quedar rebautizado, en función de sus contenedores. Por ejemplo, es posible que tenga:

<asp:panel id="panel1" runat="server"></asp:panel> 

Esto se puede volver a la página como:

<div id="ctl00$panel1"></div> 

Así que si usted escribe usando jQuery $('#panel1') como selector, no va a funcionar. La forma de evitar esto es para generar el identificador de forma dinámica, por ejemplo:

Dim js as String = "$('" & panel1.ClientID & "').whatever();" 

Esto puede hacer que el código JavaScript puede leer un poco, pero funciona bastante bien. Trabajo en una gran aplicación web utilizando este método, y jQuery nos ha ahorrado un montón de tiempo, sin mencionar que el sitio se ve y funciona mucho mejor.

+0

Derecha. Eso es algo que uno necesita saber. En nuestra aplicación web, he creado una página base que expone el mecanismo para registrar identificadores de controles a los que desea acceder desde el lado del cliente y este cln se representa como un objeto JS como MyId.MYpage.ClientId – rams

+0

Una mejor solución para algunas situaciones es para usar un selecter que encuentre controles con ** id's que terminan en [someControlId] **, así: $ ("[id $ = someControlId]") – MGOwen

2

Por lo que vale, no hay conflicto entre la función $ de jQuery y las funciones de acceso directo con prefijo $ de ASP.NET AJAX ($ get, $ find, $ create, etc.). Al igual que el uso de una variable f no impide el uso de una variable llamada f oo.

jQuery y ASP.NET AJAX funcionan bien juntos en la mayoría de los casos. En el último año, la única vez que he visto ASP.NET AJAX romper el código jQuery fue this scenario with jDrawer. La solución no fue mala.

1

Un reciente desarrollo en relación con esta pregunta:

Scott Guthrie publicado el 28 de septiembre de 2008 (véase: http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx) que Microsoft realmente comenzará a enviar jQuery con Visual Studio. Los proyectos de MVC incluirán la biblioteca por defecto. Scott indica que esto se hace con el consentimiento y el aliento del equipo de JQuery.

Ver la publicación original para full details.

+0

lo vi. Esto debería poner fin a cualquier duda sobre la interoperabilidad de ASP.Net AJAX y jQuery – rams

1

Aparentemente, Telerik ha comenzado a agregar jQuery a algunos de sus RadControls, a partir de la versión Q3.

Puedo utilizar jQuery y RadControls, pero no han tenido el tiempo para mirar más allá en este enredo ... podría oscilar en ambos sentidos ....
Tengo una sensación de Omnius que esto conlleva más Clusterf ** *, pero eso es sólo basada en la experiencia general con un poco de esto y un poco de eso ;-)

Comprobar el blog de Atanas Korchev en Telerik en apenas este tema:
http://blogs.telerik.com/AtanasKorchev/Posts/08-11-06/ASP_NET_Ajax_Controls_and_jQuery.aspx

y la mejor de las suertes para todos nosotros cuando MS, jQuery, Telerik, JP Morgan y McDonalds se mezclan y se mezclan en nuestros escritorios ... ;-)

1

He usado jQuery con ASP.NET Ajax ya que ambos hacen bien las cosas bien. Nunca tuve un problema con el uso de los dos juntos. De hecho, me muevo por la extraña mezcolanza de identificación de ASP.NET usando los potentes selectores jQuery. Al poder seleccionar clases y subelementos de elementos (básicamente CSS) hace que sea muy fácil de usar.

Cuestiones relacionadas