2013-08-09 3 views
1

J'ai dropdownlist comme suit:Ajouter à Html.DropDownList un option.text supplémentaire et option.value mvc

@Html.DropDownList("accounts", (IEnumerable<SelectListItem>)ViewData["Accounts"], "--- All ---") 

quand je veux récupérer la valeur (de l'option supplémentaire) de la liste déroulante de javascript Je reçois une chaîne vide, comment puis-je définir la valeur de ddl, mon script ressemble aime:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#accounts").change(function() { 
     var idaccount = $("#accounts > option:selected").attr("value"); 
     $("#ordersTabel>tbody>tr").each(function (index, itemData) { 
      $this = $(this) 
      var accountintable = $("#accountKolom", itemData).text(); 
      if (idaccount == "--- All ---") { 
       $this.show(); 
      } 

      if (idaccount != $.trim(accountintable)) { 
       $this.hide(); 
      } 

     }); 
    }); 
}); 

Merci,

Hicham.

+2

la valeur du optionLabel est censé être une chaîne vide ... –

Répondre

0

Comme cela a été mentionné dans les commentaires, la valeur de l'option par défaut est censée être une chaîne vide afin que l'attribut Required fonctionne comme prévu: il valide la présence d'une valeur.

Cependant, si vous demandez: « Comment puis-je insérer des options supplémentaires avec des valeurs dans un IEnumerable existant » vous pouvez utiliser la méthode d'extension Enumerable.Concat:

var accountOptions = <do whatever you do to generate your existing collection>; 
var allOptions = new[]{new SelectListItem{ 
    Value = <your value>, 
    Text = "--- All ---";}}.Concat(accountOptions); 
ViewData["Accounts"] = allOptions; 
Questions connexes