2010-11-15 10 views
1

Voici la situation. J'ai un contrôle htmlselect qui, une fois chargé, doit initialement être activé ou désactivé en fonction de quelque chose qui est vrai ou non dans la requête de la base de données. Ensuite, j'ai besoin que l'utilisateur puisse cliquer sur une case à cocher pour désactiver ou activer le même contrôle htmlselect, ALL sans publication.Désactiver/Activer HtmlSelect basé sur la case cochée dans javascript et asp.net

Est-ce possible?

Répondre

0

En utilisant javascript et code-behind j'ai pu obtenir ce travail. Merci à tous

2

devrait être quelque chose comme ça:

<input type="checkbox" onclick="document.getElementById('idOfSelect').disabled=(this.checked)?false:true"> 
+0

Tout est bon et tout, mais le contrôle doit être désactivé ou activé automatiquement sur la charge de l'écran en fonction d'un certain commutateur provenant de la requête de base de données – mattgcon

+0

Je pense que dans asp.net, il devrait être possible de définir il y a un attribut "désactivé" en fonction de votre condition. –

1

Vous devrez générer le code HTML dynamiquement lors de l'exécution, soit en le générant à partir de votre code serveur ou à l'aide d'un modèle. Utilisez le code Dr.Molle suggéré plus haut, et insérez un attribut enabled pour la case à cocher/le style désactivé pour la SELECT en fonction du résultat de la requête de base de données:

<INPUT type-"checkbox" checked ...> 
<SELECT ...> 

si elle est censée être activé ou

<INPUT type-"checkbox" ...> 
<SELECT disabled ...> 

si ce n'est pas le cas.

Malheureusement, vous ne pouvez pas combiner la génération HTML pour définir l'état initial et le changement dynamique en fonction de l'interaction de l'utilisateur, sauf si vous utilisez un framework Web très sophistiqué.

Mettre tous ensemble, en utilisant une convention de templating commune, votre modèle HTML pourrait ressembler à ceci:

<INPUT type="checkbox" ${mySelectIsInitallyEnabled ? "checked" : ""} onclick="document.getElementById('mySelect').disabled=(this.checked)?false:true"> 
<SELECT id="mySelect" ${mySelectIsInitallyEnabled ? "" : "disabled"}> 

    <!-- options ... --> 

</SELECT>