То, что я пытаюсь сделать, это предоставить общую возможность поиска по таблице. Таким образом, пользователю представляются все данные в таблице, они вводят некоторый текст для фильтрации, и, вуаля, таблица теперь фильтруется по всем результатам, которые соответствуют этой записи.
У меня это работает с одним полем:
public ActionResult Index(string user_name)
{
var dataContext = new PurchaseOrderDataContext();
var orders = from o in dataContext.purchase_orders
where o.approved_by.display_name.StartsWith(user_name ?? "")
select o;
if (Request.IsAjaxRequest())
{
return PartialView("list", orders);
}
else
{
return View(orders);
}
}
Но то, что я ищу, это возможность для них иметь выпадающий список, который позволяет им переходить в поле, по которому они хотят фильтровать. Хотелось бы что-то вроде этого:
public ActionResult Index(string field, string query_value)
{
var dataContext = new PurchaseOrderDataContext();
var orders = from o in dataContext.purchase_orders
where o["field"].StartsWith(query_value ?? "")
select o;
if (Request.IsAjaxRequest())
{
return PartialView("list", orders);
}
else
{
return View(orders);
}
}
... За исключением того, что o["field"]
- это просто мое глупое предположение о синтаксисе (который не работает).
Думаю, я просто сбит с толку, потому что, хотя я использую эту классную модель данных, иногда я хочу явно ссылаться на столбцы по имени.
Как бы я поступил так?
Приношу свои извинения, если это очевидно ...
Редактировать: Я думаю, что пока оставлю это открытым, чтобы посмотреть, есть ли более аккуратное решение с меньшим количеством ощущений, чем предложено ниже. Спасибо!