Отредактировал ответ по комментариям.
Я бы определил класс для включения результатов вашего запроса:
public class OrderDataResults // Or whatever you want to call it
{
public int DriverId { get; set; }
public int OrderCount { get; set; }
public int OrderCountWhereNameIsNotNull { get; set; }
}
С вашего сервера вы можете вернуть список из них:
public class OrderViewRepository : BaseRepository<OrderView>
{
public List<OrderDataResults> GetOrderDataResults()
{
return GetQuery().
Where(x => x.SHIPMENT != null).
GroupBy(o => o.DRIVER_ID).
Select(g =>
new OrderDataResults
{
DriverId = g.Key,
OrderCount = g.Count(),
OrderCountWhereNameIsNotNull =
g.Count(o => o.RECEIVE_NAME != null)
}).ToList();
}
}
А при загрузке страницы вы можете вызвать метод GetOrderDataResults()
и получить свой список:
protected void Page_Load(object sender, EventArgs e)
{
var rep = new OrderViewRepository();
List<OrderDataResults> results = rep.GetOrderDataResults();
DataViewer.DataSource = results;
DataViewer.DataBind();
}
Чтобы увидеть результаты, просто удалите раздел <Columns>
из определения GridView
:
<asp:GridView runat="server" ID="DataViewer">
</asp:GridView>
И снова, вы, вероятно, захотите реорганизовать этот код и самостоятельно принять некоторые структурные решения, как только этот код заработает (например, решите, хотите ли вы вернуть список из своего репозитория и т. Д.).
Кроме того, вы, вероятно, захотите настроить внешний вид таблицы, поэтому вы можете обратиться к документации GridView . В вашем случае кажется, что вы хотите отображать только данные, поэтому более простое управление (например, Repeater ) может оказаться более подходящим.