每天查询物品

时间:2018-07-11 14:17:32

标签: c# linq ext.net

这是我的商店:

<ext:Store ID="itemsPerDayStore" OnReadData="itemsPerDayStore_ReadData" runat="server">
     <Model>
            <ext:Model runat="server">
                  <Fields>
                       <ext:ModelField Name="Day" />
                       <ext:ModelField Name="Items" />
                  </Fields>
            </ext:Model>
     </Model>
</ext:Store>

Items表是这样的:

Items ( Itemid | DayPurchased )

我如何编写查询以返回每天的项目数? “商店”将用于填充“每天的物品”图表。

1 个答案:

答案 0 :(得分:2)

using System;
using System.Collections.Generic;
using System.Linq;

public class Item
{
    public int Itemid { get; set; }
    public DateTime DayPurchased { get; set; }
}

public partial class Default : System.Web.UI.Page
{
    protected void itemsPerDayStore_ReadData(object sender, Ext.Net.StoreReadDataEventArgs e)
    {
        // Sample data. Replace items from database
        IEnumerable<Item> Items = new Item[]
        {
            new Item { Itemid = 1, DayPurchased = DateTime.Today },
            new Item { Itemid = 2, DayPurchased = DateTime.Today },
            new Item { Itemid = 3, DayPurchased = DateTime.Today },
            new Item { Itemid = 4, DayPurchased = DateTime.Today.AddDays(-1) },
            new Item { Itemid = 5, DayPurchased = DateTime.Today.AddDays(-1) },
            new Item { Itemid = 6, DayPurchased = DateTime.Today.AddDays(-2) }
        };

        itemsPerDayStore.DataSource = Items.GroupBy(x => x.DayPurchased.Day).Select(x => new
        {
            Day = x.Key,
            Items = x.Count()
        });

        itemsPerDayStore.DataBind();
    }
}

请记住第一次重新加载商店。像这样:

<ext:ResourceManager runat="server">
    <Listeners>
        <DocumentReady Handler="#{itemsPerDayStore}.reload();" />
    </Listeners>
</ext:ResourceManager>