2017-10-20 56 views
0

如果我用静态值占位符,然后可以创建作为第一选项@Html.DropDownList(),它可以应用禁用,并在此选项选择的属性这样@ 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

简单的方法是职高店的'SelectListItem's到一个新的变量和'Add'与*月*相同选项的新项目。 – 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