2017-10-20 1 views
0

私は、静的な値で@Html.DropDownList()を使用する場合は、プレースホルダは、最初のオプションとして作成することができ、この

@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"}) 
のように、このオプションを無効と選択した属性を適用することが可能であるが選択されました

しかし、私は番号の範囲でのようにドロップダウンリストを作成し、作る場合は、このようなプレースホルダ:

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

は、それがこのPlease Select Year無効で、選択を行うことは可能ですか?

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

I want this please Select Year as Disabled

+0

簡単な方法は、新しい変数と 'Add'にクーゼ店の' SelectListItem'sです:あなたは、コードのほんの少しで、あなたは数ヶ月のために使用されている同じアプローチに戻すことができしかし

* month *と同じオプションの新しい項目。 – Werner

答えて

2

メモyearドロップのために使用している過負荷がダウンしてあなたのデフォルトのアイテムの出現に対する制御を与えません。

@{ 
    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

これは私が実際に求めているものです。どうもありがとう。 – rashed