Comment définir l’ASP.net dropdownlist index à 0 à partir du serveur frontal

J’ai le code suivant sur la page ASP.net:

    

JQuery pour définir l’index sur 0 pour les trois listes déroulantes:

 $(function () { $("body").on("click", "#ClearForm", function (e) { e.preventDefault(); $("select#ddl1, select#ddl2, select#ddl3").prop('selectedIndex', 0); //does not set the selected index to 0 alert($("select#ddl1").text()); //displays all the options from #ddl1 }); }); 

Comment puis-je modifier si l’index dropdownlist est défini sur 0.

Rendu HTML de la première liste déroulante:

  Select a State AL AK AZ  

J’ai essayé le JQuery suivant et il renvoie null :

 alert($("select#ddl1").val()); 

Aussi essayé le suivant et cela n’a pas fonctionné:

 $('select').each(function () { $(this).find('option:first').prop('selected', 'selected'); }); 

Ajout du JavaScript suivant:

 function setSelectedIndex(dropdownlist, selVal) { var ddl1 = document.getElementById(dropdownlist); alert(ddl1.selectedIndex); if (ddl1.length >= selVal) { //if the selected value is greater then 0, the alert is shown but the value is not set back to 0. ddl1.selectedIndex = selVal; alert("greater or equal"); } else { alert("not greater or equal"); } } 

Il semble que si je supprime le Jquery choisi, cela fonctionne très bien: http://jsfiddle.net/bpbvhsay/

Il y a plusieurs façons de faire cela, mais voici la solution avec JavaScript:

 function setSelectedIndex(dropdownlist, selVal) var ddl1 = document.getElementById(dropdownlist); //alert(ddl1.selectedIndex); //displays the proper index... if(ddl1.length >= selVal) { ddl1.selectedIndex = selVal; } } 

Appelez la fonction ci-dessus selon vos besoins comme ci-dessous:

 setSelectedIndex('<%=ddl1.ClientID %>', 2); 

UPDATE Comme vous avez dit que vous avez déjà défini ClientIDMode , essayez la fonction mise à jour suivante:

 function setSelectedIndex(selVal){ var ddl1 = document.getElementById('ddl1'); if(ddl1.length >= selVal) { ddl1.selectedIndex = selVal; } } 

et appelez-le comme:

 setSelectedIndex(0); 

J’utilisais le Jquery choisi qui a empêché la liste déroulante de se mettre à jour.

C’est le HTML:

  

JavaScript qui définit l’index sélectionné sur 0:

 function setSelectedIndex(dropdownlist, selVal) { var ddl1 = document.getElementById(dropdownlist); if (selVal < ddl1.selectedIndex) { ddl1.selectedIndex = selVal; $(ddl1).val(0).trigger('chosen:updated'); } } 

Cela fait l'affaire.