如何将默认值突出显示或集中在下拉列表中

问题描述 投票:0回答:1

我已经获得了默认值,并且该值已成为默认值,但默认值在下拉列表中没有突出显示或焦点。

我正在使用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
...

下拉列表:

[

c# asp.net-mvc razor model-view-controller drop-down-menu
1个回答
0
投票

正如@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列表以找到所选的列表,并将下拉列表的值设置为该值,并添加将突出显示所选值的类,但请记住删除此类更改下拉列表值

© www.soinside.com 2019 - 2024. All rights reserved.