Bonjour à tous,

J'utilise du code JavaScript pour sélectionner une couleur et la copier dans un contrôle web textbox.

J'ai un contrôle web label, qui prend la couleur définie dans le textbox. Mais cela nécessite un aller-retour vers le serveur pour que le label soit actualisé.

Cet aller-retour est effectué via un clic sur un bouton. Je souhaitais savoir s'il est directement possible à partir d'un code Javascript d'actualiser le label.

Mon formulaire avec les 2 contrôles web :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form id="form1" runat="server">
     <table>
          <tr>
               <td>Couleur :</td>
               <td>
                    <a onclick="Choisir_Couleur(form1, 'TB_COULEUR')">
                         <asp:Label id="LBL_COULEUR" runat="server" BackColor="Black" BorderColor="Black"></asp:Label>
                    </a>
               </td>
               <td>
                    <asp:textbox id="TB_COULEUR" runat="server" OnTextChanged="TB_COULEUR_OnTextChanged" AutoPostBack="True">#ffffff</asp:textbox>
               </td>
          </tr>
     </table>
</form>
Dans le code-behind :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Public Sub TB_COULEUR_OnTextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
     LBL_COULEUR.BackColor = System.Drawing.Color.FromName(TB_COULEUR.Text)
End Sub
Les scripts permettant de choisir une couleur et de l'envoyer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<script language="javascript">
 
var fenetre = null;
 
function Choisir_Couleur(form, field) {						
     if (fenetre && !fenetre.closed) fenetre.close();
          adresse = "couleurs.htm?" + form.name + "&" + field
          var top = (screen.height - 240)/2;
          var left = (screen.width - 380)/2;
          fenetre = window.open(adresse, "Couleurs", "width=380, height=240, top="+top+", left="+left+", resizable=1");
          if (!fenetre.opener) fenetre.opener = self;
     }			
 
InterfaceCouleurs.prototype.envoyerCouleur = function() {
     // transmet la couleur sélectionnée au formulaire appelant
     // appelée par le bouton "Envoyer"
 
     if (this.couleur == null) alerte("Aucune couleur n'a été sélectionnée.");
     else if ((this.opener_form == null) || (this.opener_input == null)) 
          alerte("Le nom du formulaire destinataire et/ou du champ destinataire n'a pas été transmis à la popup.");
     else {
          if (this.controlerCodeCouleur() && this.controlerComposantes()) {
               opener.document.forms[this.opener_form].elements[this.opener_input].value = "#" + this.couleur;
               [color=red][b]????? opener.document.forms[this.opener_form].elements[LBL_COULEUR] ?????	[/b][/color]
               window.close();
          }
          else alerte("Le code couleur n'est pas valide.");
     }
     return false;
}
 
</script>
Merci d'avance pour vos réponses