asp.Netマルチデータページング方法
2748 ワード
1、ページング機能付きコントロールgridviewを使用する.
利点:便利で、コード量が少なく、コントロールをドラッグして、属性を修正すればいいです.
欠点:柔軟性がなく、ビッグデータ量に速度と効率の問題がある.
2、datalistとdatarepeater
簡単、便利、柔軟.必要なコード量が増加します.
(1)ダブルトップページング法
(2)PagedDataSourceで
利点:便利で、コード量が少なく、コントロールをドラッグして、属性を修正すればいいです.
欠点:柔軟性がなく、ビッグデータ量に速度と効率の問題がある.
2、datalistとdatarepeater
簡単、便利、柔軟.必要なコード量が増加します.
<asp:DataList ID="DataList1" runat="server" CellPadding="4" ForeColor="#333333" >
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#E3EAEB" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<ItemTemplate>
subsid:
<asp:Label ID="subsidLabel" runat="server" Text='<%# Eval("subsid") %>'></asp:Label><br />
mtext:
<asp:Label ID="mtextLabel" runat="server" Text='<%# Eval("mtext") %>'></asp:Label><br />
<br />
</ItemTemplate>
</asp:DataList>
<Repeater id="results" runat="server>
<ItemTemplate>
</ItemTemplate>
</Repeater>
(1)ダブルトップページング法
string sql = "select top " + pagesize + " * from komain_vote where id not in(select top " + (cpage - 1) * pagesize + " id from komain_vote order by id desc) order by id desc";
this.HyperLink2.NavigateUrl="records.aspx?page="+Convert.ToString(cpage-1);
(2)PagedDataSourceで
// PagedDataSource
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
// Page
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "Page: " + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);
// PagedDataSource Repeater
Repeater1.DataSource=objPds;
Repeater1.DataBind();