代码实现DataList控件的分页显示
为DataList控件实现 记录统计 分页统计 上下页 首末页
不多说了 HTML代码如下: <asp:DataList ID="DataList1" runat="server" DataKeyField="ZhuCYHM"> <ItemTemplate> BianH: <asp:Label ID="BianHLabel" runat="server" Text='<%# Eval("BianH") %>'></asp:Label><br /> ZhuCYHM: <asp:Label ID="ZhuCYHMLabel" runat="server" Text='<%# Eval("ZhuCYHM") %>'></asp:Label><br /> XingM: <asp:Label ID="XingMLabel" runat="server" Text='<%# Eval("XingM") %>'></asp:Label><br /> XingB: <asp:Label ID="XingBLabel" runat="server" Text='<%# Eval("XingB") %>'></asp:Label><br /> <br /> </ItemTemplate> </asp:DataList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:XBMISConnectionString %>" SelectCommand="SELECT BianH, ZhuCYHM, XingM, XingB FROM T_YongH"></asp:SqlDataSource> <br /> <table style="width: 619px; height: 75px"> <tr> <td colspan="3" rowspan="3" style="font-family: 宋体; width: 436px;"> 共<asp:label id="lblRecordCount" runat="server">Label</asp:label>条记录 共<asp:label id="lblPageCount" runat="server">Label</asp:label>页 当前第<asp:label id="lblCurrentPage" runat="server">Label</asp:label>页 <asp:LinkButton id="lkFirstPage" runat="server" OnCommand="Page_OnClick" CommandName="first">首页</asp:LinkButton> <asp:linkbutton id="lkPrevPage" runat="server" OnCommand="Page_OnClick" CommandName="prev">上一页</asp:linkbutton> <asp:linkbutton id="lkNextPage" runat="server" OnCommand="Page_OnClick" CommandName="next">下一页</asp:linkbutton> <asp:LinkButton id="lkLastPage" runat="server" OnCommand="Page_OnClick" CommandName="last">尾页</asp:LinkButton> </td> </tr> </table> 后台代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class DataList_exam6 : System.Web.UI.Page
{ int PageSize, RecordCount, PageCount, CurrentPage; protected void Page_Load(object sender, EventArgs e) { //每页中显示的记录数目 PageSize = 3; if (!Page.IsPostBack) { //计算总共有多少记录 RecordCount = CalculateRecord(); //计算总共有多少页 取整 PageCount = RecordCount / PageSize; if (RecordCount % PageSize > 0) PageCount = PageCount + 1; lblPageCount.Text = PageCount.ToString(); lblRecordCount.Text = RecordCount.ToString(); ViewState["PageCount"] = PageCount; CurrentPage = 0; ViewState["PageIndex"] = 0; } //DataList绑定 DataListBind(); } //统计记录数目 public int CalculateRecord() { //声明一个字符串 string sConnectionString; //连接数据库字符串,连接到AjaxDB数据库,用户名是sa sConnectionString = "Data Source=.;Initial Catalog= XBMIS;User ID=sa;"; //创建SqlConnection数据库连接对象 SqlConnection Conn = new SqlConnection(sConnectionString); //打开Conn Conn.Open(); int intCount; SqlCommand comm = new SqlCommand("SELECT count(*) as number FROM T_YongH", Conn); SqlDataReader dr; dr = comm.ExecuteReader(); if (dr.Read()) { intCount = Int32.Parse(dr["number"].ToString()); } else { intCount = 0; } dr.Close(); return intCount; } public void DataListBind() { //声明一个字符串 string sConnectionString; //连接数据库字符串,连接到XBMIS数据库,用户名是sa sConnectionString = " Data Source=.;Initial Catalog= XBMIS;User ID=sa; "; //创建SqlConnection数据库连接对象 SqlConnection Conn = new SqlConnection(sConnectionString); //打开Conn Conn.Open(); string sql; sql = "SELECT BianH, ZhuCYHM, XingM, XingB FROM T_YongH"; //创建并初始化SqlCommand对象,同时执行sql命令 SqlDataAdapter infor = new SqlDataAdapter(sql, Conn); DataSet ds = new DataSet(); //使用SqlDataAdapter的Fill方法填充DataSet infor.Fill(ds, "infor"); //GridView1控件的数据绑定 DataList1.DataSource = ds.Tables["infor"]; DataList1.DataBind(); lbnNextPage.Enabled = true;
lbnPrevPage.Enabled = true; if (PageCount == 0) { lblCurrentPage.Text = "0"; lkNextPage.Enabled = false; lkPrevPage.Enabled = false; } else { if (CurrentPage == (PageCount - 1)) lkNextPage.Enabled = false; if (CurrentPage == 0) lkPrevPage.Enabled = false; lblCurrentPage.Text = (CurrentPage + 1).ToString(); } } protected void Page_OnClick(object sender, CommandEventArgs e) { CurrentPage = (int)ViewState["PageIndex"]; PageCount = (int)ViewState["PageCount"]; string cmd = e.CommandName; //判断cmd,以判定翻页方向 switch (cmd) { case "next": if (CurrentPage < (PageCount - 1)) CurrentPage++; break; case "prev": if (CurrentPage > 0) CurrentPage--; break; case "first": CurrentPage = 0; break; case "last": CurrentPage = PageCount - 1; break; } ViewState["PageIndex"] = CurrentPage; DataListBind(); } }
本文出自 51CTO.COM技术博客 |



bin_zone
博客统计信息
热门文章
最新评论
友情链接