2010-01-03 12 views
0

J'ai un javascript pour activer les zones de texte lors de l'appel, je veux déclencher ce code quand un utilisateur choisit la valeur "Personnalisé" d'une liste déroulante, de sorte que je puisse afficher/cacher ces nouvelles zones de texte.L'appel javascript côté client du contrôle ASP déclenche l'erreur "Trop de caractères dans le caractère littéral"!

<asp:DropDownList ID="DateRangeDropDownList" runat="server" Enabled="False" **OnSelectedIndexChanged="EnableTextBoxes('SomeValue');"**> 
         <asp:ListItem>Some Value</asp:ListItem> 
         <asp:ListItem>Custom</asp:ListItem> 
        </asp:DropDownList> 

mais quand je lance ce code je reçois

Too many characters in character literal 

à la ligne ci-dessus, ce qui me fait penser, ses quelque chose au sujet de la façon dont je fais appel un script côté client à partir d'un contrôle asp. Quelqu'un peut-il me guider ici?

Répondre

3

Vous utilisez l'événement côté serveur. Il n'y a pas d'événement OnClientSelectedIndexChanged, mais vous pouvez simplement définir un attribut onChange dans votre balisage.

Il fonctionne depuis les commandes du serveur ASP:DropDownList sont rendus comme un élément select sur le client:

<asp:DropDownList ID="DateRangeDropDownList" runat="server" Enabled="False" 
    onChange="EnableTextBoxes('SomeValue');"> 
    <asp:ListItem>Some Value</asp:ListItem> 
    <asp:ListItem>Custom</asp:ListItem> 
</asp:DropDownList> 
0

OnSelectedIndexChanged est un événement côté serveur, pas un événement Javascript.
Par conséquent, le code est analysé en tant que code C# côté serveur, pas Javascript côté client.

Vous recherchez l'événement onchange côté client.