Optgroup in DropDownlistFor MVC 4?

I need to group elements internally DropDownListForin MVC 4.

I have a few drop down lists of both teams and projects. Based on the team, I get projects for which I have a table as a project that contains a column called entitytype. There are 3 types of objects, such as client, destination, and project.

I wrote a request to get team based projects. Now I want to group projects based on entity type.

For example, for Team1 there are 5 projects as 2 clients, 2 tasks and 1 project. Therefore, it should display as:

In the first dropdown menu:

  • Team: Team1

In the second drop-down list:

  • Project:

    • Customer
    • Customer 1
    • Client 2

  • Appointment:

    • Purpose 1
    • Purpose 2

  • Project:

    • Project 1

, , , , , .

: , . , Entitype, .

:

 public List<Project> GetAllProjectForTeam(int teamId)
        {
            List<Project> project = new List<Project>();
            var query = (from p in db.Projects.AsEnumerable()
                             join pt in db.ProjectTeams.AsEnumerable() on p.ProjectId equals pt.ProjectId
                             join tm in db.Teams.AsEnumerable() on pt.TeamId equals tm.TeamId
                             where pt.TeamId == teamId
                             select p
                             ).ToList();

            project = query.Distinct().ToList<Project>();
            return project.ToList();
        }

- :

<div class="editor-label">
         @Html.LabelFor(model => model.TeamId,"Team")
         </div>
            <div class="cssclass">
                 @Html.DropDownListFor(model => model.TeamId, new SelectList(Model.ddlTeam, "Value", "Text"), "Select Team", new { id = "TeamID", onchange = "GetProjects()", @class = "form-control", UpdateTargetId = "atag" })
              @Html.ValidationMessageFor(model => model.TeamId)
          </div>

              <div class="editor-label">
                  @Html.LabelFor(model => model.ProjectId, "Project")
               </div>
               <div class="cssclass">
                     @Html.DropDownListFor(model => model.ProjectId, new SelectList(Model.ddlProject, "Value", "Text"), "Select Project", new { id = "ProjectID", onchange = "ShowDocsList()", @class = "form-control" })
                       @Html.ValidationMessageFor(model => model.ProjectId)
                      </div>

, . . , - . .

+4
2

DataGroupField MVC 4

MVC 5 Asp.net Core dataGroupField,

FYI MVC Core App SeleclLiat

public SelectList(IEnumerable items, string dataValueField, string dataTextField, object selectedValue, string dataGroupField);

- select , Multiselect jquery

: - https://forums.asp.net/t/1743600.aspx?How+to+create+optGroup+from+multiselect+selectList+

0

Source: https://habr.com/ru/post/1548270/


All Articles