同僚のだから、一つはこの1で私を助けてしまいました。はい!これは私のページングDataGrid
の最終結果です。このコードはすべて、データベースから取り出されたアイテムの数を取得し、VirtualItemCount(表示するページ数を設定する)を設定し、データをページングすることを可能にしました。 AllDataSourcesは、グリッドの設定で動作するようにデータベースからデータを取得する別のクラスであり、CamSizerDataは、すべてのデータを含むTable
の名前であり、Countを取得するために使用されます。他にご質問がありましたら、お気軽にお問い合わせください。:)
DataGridの
<asp:DataGrid ID="dgArchive" CssClass="data" AutoGenerateColumns="False" runat="server"
AllowPaging="True" AllowCustomPaging="True" Visible="False" OnPageIndexChanged="dgArchive_PageIndexChanged">
<Columns>
<asp:TemplateColumn HeaderStyle-CssClass="infoHeaderDG" ItemStyle-CssClass="line">
<HeaderTemplate>
Line</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="LineNumber" Text='<%# DataBinder.Eval(Container.DataItem, "LineNumber") %>'
runat="server" /></ItemTemplate>
<HeaderStyle CssClass="infoHeaderDG"></HeaderStyle>
<ItemStyle CssClass="line"></ItemStyle>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderStyle-CssClass="infoHeaderDG" ItemStyle-CssClass="date">
<HeaderTemplate>
Date</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="CreateDate" Text='<%# DataBinder.Eval(Container.DataItem, "CreateDate", "{0: MM/dd/yyyy}") %>'
runat="server" /></ItemTemplate>
<HeaderStyle CssClass="infoHeaderDG"></HeaderStyle>
<ItemStyle CssClass="date"></ItemStyle>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderStyle-CssClass="infoHeaderDG" ItemStyle-CssClass="operator">
<HeaderTemplate>
Operator</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Operator" Text='<%# DataBinder.Eval(Container.DataItem, "Operator") %>'
runat="server" /></ItemTemplate>
<HeaderStyle CssClass="infoHeaderDG"></HeaderStyle>
<ItemStyle CssClass="operator"></ItemStyle>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderStyle-CssClass="infoHeaderDG" ItemStyle-CssClass="product">
<HeaderTemplate>
Product</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Product" Text='<%# DataBinder.Eval(Container.DataItem, "ProdNumber") %>' runat="server" /></ItemTemplate>
<HeaderStyle CssClass="infoHeaderDG"></HeaderStyle>
<ItemStyle CssClass="product"></ItemStyle>
</asp:TemplateColumn>
</Columns>
<PagerStyle Mode="NumericPages" PageButtonCount="5" />
</asp:DataGrid>
コード
protected void Page_Load(object sender, EventArgs e)
{
Page.MaintainScrollPositionOnPostBack = true;
}
protected void GetDateEntries_Click(object sender, EventArgs e)
{
dgArchive.Visible = true;
using (Entities ent = new Entities(ConfigurationManager.ConnectionStrings["QCConnString"].ToString()))
{
DateTime start = Convert.ToDateTime(Start.Text);
DateTime end = Convert.ToDateTime(End.Text).AddDays(1);
AllDataSources ds = new AllDataSources();
CamsizerData cd = new CamsizerData();
IEnumerable<CamsizerData> led = cd.GetBySelectedDates(ent, start, end);
int counter = led.Count();
dgArchive.VirtualItemCount = counter;
dgArchive.DataSource = ds.populateArchive(ent, start, end);
dgArchive.DataBind();
}
}
protected void dgArchive_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
if (source != null)
{
dgArchive.CurrentPageIndex = e.NewPageIndex;
Entities ent = new Entities(ConfigurationManager.ConnectionStrings["QCConnString"].ToString());
DateTime start = Convert.ToDateTime(Start.Text);
DateTime end = Convert.ToDateTime(End.Text).AddDays(1);
AllDataSources ds = new AllDataSources();
IEnumerable<object> recs = ds.populateArchive(ent, start, end);
dgArchive.DataSource = recs.Skip(10 * e.NewPageIndex);
dgArchive.DataBind();
}
}
の後ろ、あなたの質問に答えた場合、ここで答えを投稿してくださいし、他の人はそれが解決されます知っているように、それを受け入れます。 – jwiscarson