J'ai un objet DropDownList dans ma page Web. Lorsque je clique dessus et sélectionne une valeur différente, rien ne se passe, même si j'ai une fonction connectée à l' SelectedIndexChanged
événement.
Tout d'abord, le code HTML de l'objet réel:
<asp:DropDownList ID="logList" runat="server"
onselectedindexchanged="itemSelected">
</asp:DropDownList>
Et c'est cette fonction itemSelected
:
protected void itemSelected(object sender, EventArgs e)
{
Response.Write("Getting clicked; " + sender.GetType().ToString());
FileInfo selectedfile;
Response.Write("<script>alert('Hello')</script>");
foreach (FileInfo file in logs)
{
if (file.Name == logList.Items[logList.SelectedIndex].Text)
{
Response.Write("<script>alert('Hello')</script>");
}
}
}
Aucune des réponses n'apparaît et cette partie de JavaScript n'est jamais exécutée. J'ai essayé cela sur la dernière version 3.6 de Firefox, ainsi qu'Internet Explorer 8. Il est servi depuis une machine Windows Server 2003 R2, exécutant ASP.NET avec .NET Framework version 4.
essayez de définir
AutoPostBack="True"
sur DropDownList.la source
Je connais son post un peu plus ancien, mais je voudrais quand même ajouter quelque chose aux réponses ci-dessus.
Il peut y avoir une situation dans laquelle, la " valeur " de plusieurs éléments dans la liste déroulante est dupliquée / identique. Assurez-vous donc que vous n'avez pas de valeurs répétées dans les éléments de la liste pour déclencher cet événement " onselectedindexchanged "
la source
Ajouter une propriété
ViewStateMode="Enabled"
etEnableViewState="true"
etAutoPostBack="true"
en baisse DropDownListla source
Assurez-vous également que la page est valide. Vous pouvez le vérifier dans les outils de développement des navigateurs (F12)
Dans l'onglet Console, sélectionnez la bonne cible / trame et vérifiez la propriété [▶IsValid]
Si la page n'est pas valide, le formulaire ne sera pas soumis et ne déclenchera donc pas l'événement.
la source
Pour moi, la réponse était l'attribut de page aspx, j'ai ajouté Async = "true" aux attributs de page et cela a résolu mon problème.
Voici la structure de mon panneau de mise à jour
la source
Au lieu de ce que vous avez écrit, vous pouvez l'écrire directement dans l'événement SelectedIndexChanged du contrôle de liste déroulante, par exemple
la source