У меня есть объект Заказы (Заказ, Товар, Стоимость, Цена, Клиент, День).
Я извлекаю много записей из базы данных, и для облегчения фильтрации мне нужно накапливать списки DropDownList с извлеченными различными значениями, чтобы пользователь мог выбирать только конкретные даты или конкретные продукты или даже конкретную цену. Идентификаторы DropDownList создаются как «ddl_» + имя соответствующего поля.
Мне бы хотелось, чтобы можно было определить простой массив следующим образом:
public string[] filterArray = new string[] { "Order", "Product", "Cost", "Price", "Client", "Day" };
Затем вызовите метод BindDLLs:
foreach (string filterName in filterArray)
{
// Find the ddl to populate
DropDownList ddl = (DropDownList)this.FindControl("ddl_" + filterName);
// Get the data for that ddl only (use filterName in the select...)
var query = (from items in results select items.filterName.ToString()).Distinct();
// Populate the ddl (not complete code...)
foreach (var item in query)
{
ddl.Items.Add(item...);
}
}
Моя проблема в том, что я нахожу много документации о том, как изменить WHERE или GROUP BY или любые другие части операторов linq во время выполнения. Я просто не могу найти информацию о том, как динамически изменить поле, которое я хочу получить.
Есть ли простой способ сделать это? Спасибо.
Yipi
Edit:
List<Orders> results = OrdersService.GetOrders();
public class Orders
{
[DataMember]
public DateTime? Day
[DataMember]
public int? Order
[DataMember]
public int? Product
[DataMember]
public int? Cost
[DataMember]
public int? Price
[DataMember]
public int? Client
[DataMember]
}