Как сгруппировать данные в DropDownList, используя .net mvc и бритву? - PullRequest
0 голосов
/ 25 октября 2019

Я хочу классифицировать данные привязки из базы данных внутри выпадающего списка. Моя таблица базы данных имеет 4 столбца: DepartmentId, Name, ParentID и Level. Как я могу сгруппировать их по уровню?

Это мой код:

public ActionResult Departments()
{

    using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["FormDatabaseEntities"].ToString()))
    {

        string sql = @"select * from tblDepartment  ORDER BY COALESCE(ParentID, DepartmentID)";
        var departments = connection.Query<tblDepartment>(sql).ToList();
        SelectList list = new SelectList(departments, "DepartmentID", "DepartmentName");
        ViewBag.departments = list;
    }
    return View();
}

.cshtml сторона:

@Html.DropDownListFor(i => i.ParentID, ViewBag.departments as SelectList, "Seçiniz...", new { @class = "form-control" })

1 Ответ

0 голосов
/ 25 октября 2019

РЕДАКТИРОВАТЬ

Я видел в вашем фрагменте кода, что вы используете класс SelectList. Он имеет свойство DataGroupField. Так что все, что вам нужно сделать, это

SelectList list = new SelectList(departments, "DepartmentID", "DepartmentName");
list.DataGroupField = "Level";
ViewBag.departments = list;

Это должно сработать. SelectList также имеет несколько перегруженных конструкторов, позволяющих указать поле группы.

исходное сообщение ...

Если вы используете элементытипа SelectListItem, затем вы можете использовать свойство Group, чтобы назначить группу для каждого элемента. Это автоматически обработает группировку в раскрывающемся списке, если вы используете помощник DropDownListFor для создания списка выбора.

Для получения дополнительной информации см. Документацию SelectListItem .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...