Я создал проект MVC. Мне нужно передать выбранные значения из выпадающего списка множественного выбора обратно в мой ActionResult со стороны сервера Json для возврата значений в Datatable.
Я уже могу фильтровать, используя один выпадающий список (#YesNO) и поле ввода (#filter_Name).
Просто не уверен, что мне нужно сделать, чтобы выбрать несколько значений (#company) для возврата нужных мне данных.
Так что это макетный проект, но в основном пользователь может выбрать несколько компаний. Если бы кто-то мог указать мне правильное направление, я был бы очень благодарен.
public ActionResult GetList()
{
List<UserModel> usrModel = new List<UserModel>();
usrModel = userViewModel.Index();
var draw = Request.Form.GetValues("draw").FirstOrDefault();
var start = Request.Form.GetValues("start").FirstOrDefault();
var length = Request.Form.GetValues("length").FirstOrDefault();
var sortCulmn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int totalRecords = 0;
var userName = Request.Form.GetValues("columns[1][search][value]").FirstOrDefault();
var userCompany = Request.Form.GetValues("columns[5][search][value]").FirstOrDefault();
var userActive = Request.Form.GetValues("columns[6][search][value]").FirstOrDefault();
if (!string.IsNullOrEmpty(userName))
{
usrModel = usrModel.Where(a => a.FriendlyName.ToLower().Contains(userName.ToLower())).ToList();
}
if (!string.IsNullOrEmpty(userActive))
{
usrModel = usrModel.Where(a => a.LoginAccepted == userActive).ToList();
}
if (!string.IsNullOrEmpty(userCompany))
{
usrModel = usrModel.Where(a => a.Company.Contains(userCompany)).ToList();
}
if (!(string.IsNullOrEmpty(sortCulmn + "" + sortColumnDir)))
{
usrModel = usrModel.OrderBy(sortCulmn + " " + sortColumnDir).ToList();
}
totalRecords = usrModel.Count();
var data = usrModel.Skip(skip).Take(pageSize).ToList();
return Json(new { draw = draw, recordsFiltered = totalRecords, recordsTotal = totalRecords, data = data }, JsonRequestBehavior.AllowGet);
}
$(document).ready(function () {
var yesnoTable = $('#datatableCmp').DataTable({
"ajax": {
"url": "/Users/GetList",
"type": "POST",
"datatype": "json"
},
"columns": [
{ "data": "ID", "name": "ID" },
{ "data": "FriendlyName", "name": "FriendlyName" },
{ "data": "ContactNumber", "name": "ContactNumber" },
{ "data": "EmailAddress", "name": "EmailAddress" },
{ "data": "useDate_Birth", "name": "useDate_Birth" },
{ "data": "Company", "name": "Company" },
{ "data": "LoginAccepted", "name": "LoginAccepted" },
{ "data": "Action", "name": "Action" }
],
"serverSide": "true",
"processing": "true",
"orderMulti": "false"
});
oTable = $('#datatableCmp').DataTable();
$('#UsersearchButton').click(function () {
oTable.columns(1).search($('#filter_Name').val().trim());
oTable.columns(6).search($('#yesNo option:selected').text());
oTable.columns(5).search($('#company option:selected').text());
oTable.draw();
});
});