我已经获得了默认值,并且该值已成为默认值,但默认值在下拉列表中没有突出显示或焦点。
我正在使用SelectItemList
功能。
控制器:
private List<SelectListItem> SelectWeek() {
using(var db = new UsersContext()) {
int currentYear = DateTime.Now.Year;
selectListItems = db.WorkWeekDetails
.Where(item = >item.YEAR == currentYear).OrderBy(item = >item.WORKWEEK)
.Select(a = >new SelectListItem() {
Text = a.WORKWEEK,
Value = a.WORKWEEK
}).ToList();
selectListItems.Insert(0, new SelectListItem() {
Text = www, //www = "WW13"
Value = www, //www = "WW13"
Selected = true
});
}
return ViewBag.WorkWeek = selectListItems;
}
CSHTML:
@Html.DropDownList("WorkWeek", (List<SelectListItem>)ViewBag.WorkWeek, new { @class = "form-control", required = "required" })
我希望“WW13”成为默认值,并在下拉列表中突出显示该值。
//Example list of dropdownlist :
WW13 // This value will be the default.
ww01
ww02
ww03
ww04
ww05
ww06
ww07
ww08
ww09
ww10
ww11
ww12
ww13 // This value will be highlighted.
ww14
...
下拉列表:
[
正如@Aarif所说,你可以使用jquery来突出显示所选的选项...就像这样
另外我认为你应该通过View模型而不是viewbag传递你的下拉列表
window.onload = function() {
highlightSelected()
};
function highLightSelected(){
var model = @Html.Raw(Json.Encode(ViewBag.WorkWeek));
foreach(var item in model){
if(item.selected == true){
$("#mydropdownlist").val(item.value);
$("#mydropdownlist").addClass('active');
}
}
}
语法可能不准确,但想法是检查您的SelectedListItem列表以找到所选的列表,并将下拉列表的值设置为该值,并添加将突出显示所选值的类,但请记住删除此类更改下拉列表值