将项目添加到现有列表mvc5

时间:2020-06-02 12:55:59

标签: list model-view-controller asp.net-mvc-5 dropdown add

(我是一名新开发人员)我有一个列表,我将其放入viewBag中以在视图中创建下拉菜单,我想在此列表中添加3个元素,以便我们可以在下拉菜单末尾看到它们。我为员工制定了时间表,并提供了该人员在一周内工作的项目的下拉列表,我想在下拉列表的末尾添加三个选项:“空缺”,“计划外缺勤”,“计划内缺勤”该人是否正在休假而不是工作。

这是我对项目的要求:

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });
ViewBag.ProjectTimeSHeet = projectAssignment;

这是添加我的时间提示enter image description here的模式,我想将3天休假类型放在下拉列表的末尾,因此在这种情况下,应放在“ NatureBooker”之后

这是我的下拉菜单代码:

<select name="' + row + '_' + col + '" class="custom-select" id="tsCell_' + row + '_' + col + '" data-row="' + row + '" data-col="' + col + '">' +
                    '<option value="">----Select----</option>@Html.Raw(projsStr)</select>';

解决方案:

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;

结果:enter image description here

2 个答案:

答案 0 :(得分:1)

仍然不清楚您到底想要什么,但是如果我的猜测是正确的,您可能想将“假”项目添加到您要绑定的枚举中(顺便说一下,不是列表)。

只要您了解这是绝对错误的,并且有当场开除的理由,那么您就可以这样做:

ViewBag.ProjectTimeSHeet = projectAssignment
    .Concat(new[]
        {
            new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            },
            new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            },
            new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            },
        });

答案 1 :(得分:0)

var myOptions = {
    val1 : 'Vacancy',
    val2 : 'Unplanned Absence',
    val3 : 'Planned Absence',
};
var mySelect = $('#dropdownID');
$.each(myOptions, function(val, text) {
    mySelect.append(
        $('<option></option>').val(val).html(text)
    );
});

通过Javascript

  var ddl = document.getElementById("dropdownID");
   for ( let key in myOptions ) 
   {
        var option = document.createElement("OPTION");
        option.innerHTML = key
        option.value = myOptions[key]
        ddl.options.add(option);
    }
相关问题