2009-03-25 4 views
1

« false » Pourquoi les contrôles ASP.NET LinkButton avec OnClientClick attribut et désactivé en Enabled="false" rendre encore gestionnaire d'événements onclick en HTML tandis que Button contrôles ne le font pas?ASP.NET Button vs linkButton Activé = comportement

Cela semble contre-intuitif. Comme les ancres ne peuvent pas vraiment être désactivées dans les navigateurs, il est plus logique de ne pas attacher un événement onclick (et l'attribut href) s'il a été désactivé sur le serveur.

Répondre

2

Eh bien, je serais d'accord pour dire que le serveur n'est pas très utile, mais sans changer la façon dont le bouton link rend avec l'une des nombreuses méthodes intégrées dans asp.net, vous ne pouvez rien y faire. Sauf si vous souhaitez gérer de manière conditionnelle les clics dans le code client et vérifier les attributs des éléments. C'est juste la façon dont il est actuellement mis en œuvre, donc quand vous avez besoin de la fonctionnalité d'un bouton qui peut être désactivé, il est préférable de rester loin des linkbuttons ou des ancres entièrement.

0

Cela a vraiment peu à voir avec asp.net.

Un bouton de lien hypertexte déclenche toujours l'événement onclick même s'il est désactivé. Bottom line: cuit en HTML. (Une balise d'entrée, lorsqu'elle est désactivée, ne se déclenche pas.)

<a href="javascript:alert('Hello!');" disabled="disabled">Click Me!</a> 
+0

Mon point exactement. Alors pourquoi rendre les attributs href/onclick? Si vous voyez des contrôles Button désactivés rendus par asp.net, ils sont désactivés AND onclick n'est pas rendu (je suppose que pour des raisons de sécurité). Le bouton d'entrée –

+0

ne déclenche pas l'événement onclick lorsqu'il est désactivé. –

+0

Peut-être que nous disons la même chose mais un tag/bouton d'entrée ne déclenche pas l'événement onclick lorsqu'il est désactivé (événement lorsque le balisage est inclus.) Peut-être que asp.net optimise un peu les choses puisque le balisage onclick n'est pas utilisé nécessaire. – andleer