Je pense que la réponse est la valeur n'existe pas côté client, donc il ne peut pas être récupéré. Il existe des moyens plus simples d'obtenir l'index tho (en supposant que l'initialisation soit complète).
selected index: $find("<%=cboName.ClientID%>").get_hiddenFieldControl().value;
selected index (again): $find("<%=cboName.ClientID%>").get_selectedIndex();
selected text: $find("<%=cboName.ClientID%>").get_textBoxControl().value;
Pour autant que je peux dire, la validation d'un combobox sur le client exige une certaine foi dans l'index ou d'un texte, ou une sorte de solution côté serveur.
Fournir une réponse directe à la ligne d'objet, un tableau JavaScript pourrait être créé côté serveur à chaque valeur combobox puis référencé côté client par index sélectionné ...
codebehind:
// write combobox values to asp:literal
foreach (ListItem i in cboName.Items)
litCboValues.Text += "\"" + i.Value.Replace("\"", "\\\"") + "\", ";
litCboValues.Text = litCboValues.Text.TrimEnd(new char[] {',', ' '});
ASPX:
<script>
// array of values
var cboValues = [ <asp:Literal id="litCboValues" runat="server" /> ];
// add an alert to the combobox to test
function pageLoad()
{
$find("<%=cboName.ClientID%>").get_textBoxControl().onblur = function() {
alert(cboValues[$find("<%=cboName.ClientID%>").get_selectedIndex()]);
};
}
</script>
<asp:ComboBox id="cboName" runat="server" ...
Merci, mais votre solution ne fonctionne pas. La combobox de l'ajaxtoolkit est composée de 3 entrées. Je ne peux pas obtenir la valeur avec ça. –