2010-07-14 14 views
6

¿Puedo evitar usando MS AJAX por completo mientras desarrollo las aplicaciones Webform de ASP.NET y uso las herramientas jQuery/jQuery en su lugar?Webforms de ASP.NET con jQuery?

jQuery parece ser mucho más ágil, tiene mejor comunidad, tamaño de archivo extremadamente pequeño (24kb). También parece una opción obvia para el desarrollo ASP.NET MVC.

Pero, ¿qué hay de Webforms? Realmente preferiría no utilizar AJAX Tools que viene con Visual Studio 2010. ¿Puede jQuery proporcionarme todo lo que los controles AJAX predeterminados tienen para ofrecer?

Gracias!

Respuesta

6

¿Se puede usar jQuery con formularios web? Sí, eso no es un problema: al final del día, toda la configuración de formularios web genera páginas web HTML y, por lo tanto, jQuery puede manipularlas.

Puede jQuery proporcionar todo lo que proporcionan los controles AJAX predeterminados - hmmm, sí, en teoría, porque en última instancia lo que hacen es a) manipular el DOM yb) realizar llamadas fuera de banda al servidor. En la práctica, vas a renunciar a la facilidad de uso y vas a tener que trabajar un poco más.

El mayor problema, al menos con las aplicaciones que se ejecutan antes de .NET 4.0, es que los ID generados para los controles del servidor son, eh, interesantes. Si puede hacer todo lo que necesita en jQuery sin referencia a una ID de control (si puede usar clases o buscar tipos de control), está ausente y en ejecución, pero si necesita ser explícito sobre una ID, se sentirá estresado. a menos que pueda usar .NET 4.0

Tengo un código que mezcla bits de los dos (sitios de datos dinámicos que usan el calendario jQueryUI como mucho mejor que el kit de herramientas) y ciertamente contemplaría usar más elementos jQuery en formularios aplicaciones.

+2

puede usar el selector de atributos "ends with" para los controles del servidor: '$ (" [ID $ = myControl] ")' –

+0

Limpio, jQuery sigue impresionando – Murph

+0

Y, de hecho, he llegado al punto donde necesito hacer exactamente esto, aunque no es una respuesta buscada claramente una consecuencia útil de participar (-: – Murph

3

Sí. Usted puede. Pero necesita usar muchos plugins jquery para diferentes funcionalidades.

En uno de nuestros proyectos (asp.net webforms), inicialmente estamos usando MS Ajax. Ahora nos estamos moviendo lentamente a jquery con éxito.

+0

Eso es bueno para escuchar. Tengo 2 plugins jQuery que definitivamente utilizaré: jQuery Tools for Validation y HighCharts JS for Charting. E incluso entonces está significativamente menos "hinchado" que controles similares en MS AJAX. –

+0

@Rihanna.Rain - hoy en día, Microsoft admite oficialmente que la comunidad jquery y jquery es lo suficientemente potente como para abordar todas las funciones que MS Ajax tiene. – Krunal

3

Eso depende del modelo de desarrollo que necesite. jQuery requiere el uso de servicios web para la comunicación, mientras que MS AJAX puede funcionar con devoluciones implícitas. Aunque este último es útil para un desarrollo rápido, el uso de servicios web para la comunicación de datos es una mejor práctica.

La mayoría de los controles MS AJAX se pueden imitar mediante el uso de diferentes bibliotecas jQuery.

2

Respuesta corta: Sí. Y como la respuesta de ironpaw insinúa, Microsoft respalda esto.

El único problema es que, como probablemente sepa, con Webforms no puede controlar qué ID del lado del cliente recibirán sus controles, lo que hace engorrosa la selección mediante $ ('# id').

Normalmente soluciono esto usando clases de css para selección, o obteniendo la propiedad ClientID de controles en código cuando sea necesario (por ejemplo, cuando necesito hacer referencia a un control creado dinámicamente en un repetidor).

+3

La selección de identificación se puede hacer usando el selector '$ (" [id $ = 'YOURID'] ")'. – Prutswonder

+0

@Prutswonder: Bueno. Es tan obvio cuando lo dices, pero por alguna razón nunca se me ocurrió. Cuando varios controles comparten el mismo ID de servidor (por ejemplo, con un repetidor o similar), obtienen la ID del cliente o p. Ej. Sin embargo, sería necesario seleccionar n: th niño. – Legogris

+0

Re: "con Webforms no puedes controlar qué ID del lado del cliente obtendrán tus controles"; Los valores de ID del lado del cliente se pueden definir con un valor específico con la propiedad de control de ASP.NET de ClientIDMode = "Static". Hacerlo hace que el programador sea responsable de asignar valores de ID únicos. – JohnH

Cuestiones relacionadas