2017-10-20 5 views
0

Si j'utilise un @Html.DropDownList() avec des valeurs statiques alors Placeholder peut être créé comme première option et il est possible d'appliquer Désactivé et attribut sélectionné cette option comme celui-ci@ Html.DropDownList() Placeholder comme Désactiver et sélectionné

@Html.DropDownList("month", new List<SelectListItem> 
{ 
    new SelectListItem{ Text="Select Month", Value = "0" , Disabled = true, Selected = true}, 
    new SelectListItem{ Text="January", Value = "1" }, 
    new SelectListItem{ Text="February", Value = "2" }, 
    new SelectListItem{ Text="March", Value = "3" }, 
    new SelectListItem{ Text="April", Value = "4" }, 
    new SelectListItem{ Text="May", Value = "5" }, 
    new SelectListItem{ Text="June", Value = "6" }, 
    new SelectListItem{ Text="July", Value = "7" }, 
    new SelectListItem{ Text="August", Value = "8" }, 
    new SelectListItem{ Text="September", Value = "9" }, 
    new SelectListItem{ Text="October", Value = "10" }, 
    new SelectListItem{ Text="November", Value = "11" }, 
    new SelectListItem{ Text="December", Value = "12" }, 
}, new {@class = "form-control"}) 

Mais si je crée la liste déroulante comme avec une plage de numéro et un porte-place comme celui-ci:

@Html.DropDownList("year", 
     Enumerable.Range(1900, 200) 
      .Select(i => new SelectListItem { Text = i.ToString(), Value = i.ToString() }), 
     "Please Select Year", new { @class = "form-control" }) 

Est-il possible de faire ce Please Select Year Désactivé et sélectionné?

This is the output of first dropdownlist where first option is Disabled

I want this please Select Year as Disabled

+0

Un moyen facile est de magasin couse les 'SelectListItem's dans une nouvelle variable et' add' un nouvel élément avec les mêmes options que pour * mois *. – Werner

Répondre

2

Notez la surcharge que vous utilisez pour year drop vous donne jusqu'à aucun contrôle sur l'apparence de l'élément par défaut.

Cependant, vous pouvez revenir à la même approche que vous utilisez pendant des mois, avec un petit peu de code:

@{ 
    var years = new List<SelectListItem>{ 
     new SelectListItem{ Text="Select Year", Value = "0" , Disabled = true, Selected = true}, 
    }; 

    years.AddRange(Enumerable.Range(1900, 200) 
      .Select(i => new SelectListItem { Text = i.ToString(), Value = i.ToString() })); 
} 

@Html.DropDownList("year", 
     years, 
     new { @class = "form-control" }) 
+0

C'est ce que je demande réellement. Merci beaucoup. – rashed