J'ai une liste déroulante de serveur dans un panneau de mise à jour Ajax. Lorsque j'utilise la souris pour cliquer sur un élément, il déclenche la publication, mais lorsque je clique sur la flèche haut/bas pour modifier les entrées, cela ne déclenche pas. Quelle pourrait être la raison?ASP.NET Dropdownlist selectedindexchanged event ne déclenche pas sur la flèche haut/bas
Répondre
Essayez ceci:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" onKeyUp="this.blur();">
Avec onKeyUp = "this.blur();" Le contrôle perdra le focus lorsqu'une touche n'est pas pressée, ce qui déclenchera l'événement onChange.
Je pense que vous devez quitter le contrôle si vous utilisez le clavier pour déclencher l'événement.
Y at-il de toute façon que ce soit tiré directement sur la flèche haut/bas? – leora
Si vous voulez que cela fonctionne avec les touches fléchées, vous devez utiliser l'événement côté client, onKeyDown
.
pouvez-vous me donner un exemple de comment cela fonctionnerait. . et comment cela peut ensuite poster sur le serveur pour des actions – leora
Définissez la propriété 'AutoPostBack' du contrôle DropDownList à 'vrai.
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
</asp:DropDownList>
Voir ListControl.AutoPostBack Property on MSDN pour plus d'infos
Obtient ou définit une valeur indiquant si une publication sur le serveur se produit automatiquement lorsque l'utilisateur modifie la sélection de liste.
Merci! Cela a fonctionné pour moi! – John
Cependant, cette solution peut être agréable, vous êtes en train de tuer des fonctionnalités, si vous avez une liste avec 10 éléments et que l'utilisateur décide de naviguer au clavier, il quitte la liste déroulante chaque fois qu'il clique haut ou bas. est-il possible de faire onKeyUp = "this.blur(); this.focus();" ? – Sander
même si cela n'a pas fonctionné pour moi. Mais vaut la peine d'essayer et de prendre note :) – Shinigamae