Bonjour tout le monde
Je vous présente tout d'abord ce que je souhaire faire:
J'ai une page web avec une textbox, une image et un tableau.
Dans ma base de données, j'ai une table Couleur avec 2 colonnes
C_NOM
C_VALEUR_WEB
Le tableau de ma page sert à afficher les couleurs stockées dans ma table.
Chaque case est une couleur en fait
Pour ça j'utilise un asp:repeater tout simple
Jusque là pas de problème.
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 <asp:Repeater ID="form_tab_couleurs" runat="server"> <HeaderTemplate> <table style="width: 21px; background-color:#555555" cellspacing="1"> <tr> </HeaderTemplate> <ItemTemplate> <td style="width: 20px; height: 20px; background-color: #<%#DataBinder.Eval(Container.DataItem, "C_VALEUR_WEB")%>"> <img alt="" src="_fichiers/img/pixel.gif" width="20";/> </td> </ItemTemplate> <FooterTemplate> </tr> </table> </FooterTemplate> </asp:Repeater>
Ensuite, je souhaite ajouter un javascript sur le onclick de chaque case de mon tableau. Le script js a pour but de remplir la textbox avec le nom de la couleur et remplir l'image avec la couleur selectionnée.
Le script js en lui même marche bien.
Le pb se trouve au niveau de l'item Template qui ressemble à ça avec l'insertion du code pour le js:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function select_couleur(couleur_web, couleur_nom) { obj = document.getElementById(Literal_clientID + '_form_r_couleur'); obj.value=couleur_nom; obj2 = document.getElementById(Literal_clientID + '_img_couleur'); obj2.style.backgroundColor= '#'+couleur_web; }
Le problème est que les guillemets du onclick="" rentrent en conflit avec les guillemets du DataBinder.Eval
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <ItemTemplate> <td style="width: 20px; height: 20px; background-color: #<%#DataBinder.Eval(Container.DataItem, "C_VALEUR_WEB")%>"> <img alt="" src="_fichiers/img/pixel.gif" width="20" onclick="select_couleur('<%#DataBinder.Eval(Container.DataItem, "C_VALEUR_WEB")%>', <%#DataBinder.Eval(Container.DataItem, "C_NOM")%>)";/> </td> </ItemTemplate>
Qq'un a une idée?
Merci
Partager