asp.net jquery web-controls

asp.net - Webforms y jQuery, ¿cómo hacer coincidir los ID?



timepicker jquery ui (7)

Pruebe $get(''myId'') . Creo que esta es la forma de seleccionar un elemento en documentos que no sean HTML.

Quiero usar jQuery con asp.net webfoms. ¿Debo obtener un kit de herramientas especial para que los controles .net escuchen ID de control amigables?

Por lo que respecta a la razón, no quiero escribir javascript haciendo referencia a mi ID html como control_123_asdfcontrol_234.

¿Esto ha sido abordado en la versión 3.5? (Recuerdo haber leído que tienes que conseguir un dll especial que hace que ID sea amigable).


Aunque no he oído hablar de ese nuevo "dll especial", hablas de una manera simple sería usar

var myControlId;

En su archivo js por separado y luego asigne el ID del cliente a esa var en aspx / ascx.

Yo también odio la identificación del servidor: s ... ASP.NET MVC es la solución a todas las cosas que me molestan con los formularios web asp.net (Viewstate ... etc etc.).


Hay muchas maneras de seleccionar elementos con jQuery. Podría hacer una selección cuidadosa de Tag / ClassName para uno.
No sé de ninguna manera para perder el tiempo con los identificadores hasta ASP.NET 4.0. Por supuesto, siempre puedes probar ASP.NET MVC Framework .


Puede adjuntar un atributo único a sus controles (no estoy seguro de si puede hacerlo sin extender los controles web básicos, una búsqueda rápida solo reveló esto ) y luego usar el selector "element [attribute: value]".


Puede usar myControlId = "<%= myControl.ClientID %>"; para generar el id. (no amigable) utilizado para referenciarlo en Javascript.


También puede anular las propiedades UniqueName y / o ClientID de los controles en una clase extendida y devolver la identificación real.

MyTextBox : Web.UI.TextBox { // This modifies the generated ''name'' attribute override UniqueID { get { return ID; } } // This modifies the generated ''id'' attribute override ClientID { get{ return ID; } } }


La forma más fácil que he encontrado es simplemente coincidir en el extremo de la identificación destrozada para la mayoría de los controles. Las excepciones que se conocen son listas de botones de radio y listas de casillas de verificación: tiene que ser un poco más complicado con ellos.

Pero si tiene esto en su página .aspx:

<asp:TextBox ID="txtExample" runat="server" />

Entonces su jQuery puede encontrar fácilmente ese control, incluso si está dañado por la representación de la página maestra, así:

$("[id$=txtExample]")

El operador $= coincide con el final de la cadena y el cambio de nombre está siempre en el frente. Una vez que haya hecho eso, puede obtener el ID destrozado actual de esta manera:

$("[id$=txtExample]").attr("id")

y luego analizar de todos modos lo que mejor le parezca.

EDITAR: Esta es una manera fácil, pero puede ser más un golpe de rendimiento que simplemente darle a cada control una clase igual a su ID anterior.

Vea este artículo en el que Jeff publicó un enlace para otra pregunta de optimización de jQuery:

jQuery: análisis de rendimiento de selectores