zoukankan      html  css  js  c++  java
  • DataList自定义分页

     private void DataListBind()
      {
       SqlConnection con = new SqlConnection("server=wfserver;database=test;uid =sa;pwd=123;");
       SqlDataAdapter sda = new SqlDataAdapter("select * from Employees",con);
       DataSet ds= new DataSet();

       try
       {
        sda.Fill(ds,"testTable");
        this.lblall.Text = "共 "+Convert.ToString(ds.Tables["testTable"].Rows.Count)+" 条数据";
        PagedDataSource objpage = new PagedDataSource();
        objpage.DataSource =ds.Tables["testTable"].DefaultView;
        objpage.AllowPaging=true;
        objpage.PageSize=5;
        int CurPage;
        if(Request.QueryString["Page"]!=null)
        {
         CurPage = Convert.ToInt32(Request.QueryString["Page"]);
        }
        else
        {
         CurPage = 1;
        }
        this.lblcurpage.Text = "当前第 "+Convert.ToString(CurPage)+" 页";
        objpage.CurrentPageIndex = CurPage -1;
        if(!objpage.IsFirstPage)
        {
         //到上一页
         this.Hyperprev.NavigateUrl = Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage-1);
        }
        if(!objpage.IsLastPage)
        {
         //到下一页
         this.Hypernext.NavigateUrl = Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage+1);
        }
        this.DataList1.DataSource = objpage;
        this.DataList1.DataBind();
       }
       catch(Exception error)
       {
        Response.Write(error.ToString());
       }
      }

    aspx中的代码:
    <asp:datalist id="mydatalist" Runat="server">
         <ItemTemplate>
             <TABLE id="Table2" cellSpacing="0" cellPadding="0" width="400" border="0">
                  <TR>
                       <TD width="15"> </TD>
                       <TD width="85" height="22"> </TD>
                       <TD width="211"> </TD>
                       <TD width="80"> </TD>
                  </TR>
                  <TR>
                       <TD width="15"> </TD>
                       <TD class="ziti" bgColor="#f7eeef" colSpan="3" height="22">回  复:</TD>
                  </TR>
                  <TR>
                       <TD width="15"></TD>
                       <TD bgColor="#666666" colSpan="3" height="1"></TD>
                  </TR>
                  <TR>
                       <TD width="15" rowSpan="3"> </TD>
                       <TD class="ziti" vAlign="top" width="85" rowSpan="3">发贴人姓名<BR>
                                                   级别:<BR>
                       </TD>
                       <TD class="ziti" vAlign="top" height="22"><IMG height="20" src="images.files/face0.gif" width="20">发表于:<%# DataBinder.Eval(Container.DataItem,"remessage_time") %></TD>
                       <TD class="brown" width="80">回复</TD>
                  </TR>
                  <TR>
                       <TD colSpan="2" height="5"></TD>
                  </TR>
                  <TR>
                       <TD><%# DataBinder.Eval(Container.DataItem,"remessage_context") %></TD>
                       <TD width="80"> </TD>
                       <TD width="4"> </TD>
                  </TR>
                  <TR>
                       <TD width="15"></TD>
                       <TD bgColor="#666666" colSpan="3" height="1"></TD>
                  </TR>
             </TABLE>
         </ItemTemplate>
    </asp:datalist>
    <TABLE id="Table3" cellSpacing="0" cellPadding="0" width="400" border="0">
             <TR>
                       <TD width="15"> </TD>
                       <TD class="ziti" colSpan="3" height="22">共有<asp:label id="lblRecordCount" runat="server" ForeColor="red"></asp:label>条记录  
                                         当前为<asp:label id="lblCurrentPage" runat="server" ForeColor="red"></asp:label>/<asp:label id="lblPageCount" runat="server" ForeColor="red"></asp:label>页
                                         <asp:linkbutton id="lbnPrevPage"runat="server" Text="上一页" CommandName="prev" ></asp:linkbutton><asp:linkbutton id="lbnNextPage" runat="server" Text="下一页" CommandName="next" >下一页</asp:linkbutton></TD>
                  <TR>
    </table>

    CS代码:
    using System.Data.SqlClient;
    using System.Configuration;

    protected System.Web.UI.WebControls.Label lblmcontent;
             protected System.Web.UI.WebControls.Label lblmessagetime;
             protected System.Web.UI.WebControls.Label lblmkind;
             protected System.Web.UI.WebControls.Label lblmauthor;
             protected System.Web.UI.WebControls.Label lblmessagetitle;
             protected System.Web.UI.WebControls.DataList mydatalist;
             protected System.Web.UI.HtmlControls.HtmlForm Form1;
            
             int PageSize,RecordCount,PageCount,CurrentPage;
             protected System.Web.UI.WebControls.Label lblCurrentPage;
             protected System.Web.UI.WebControls.Label lblPageCount;
             protected System.Web.UI.WebControls.LinkButton lbnPrevPage;
             protected System.Web.UI.WebControls.Label lblRecordCount;
             protected System.Web.UI.WebControls.LinkButton lbnNextPage;

             private void Page_Load(object sender, System.EventArgs e)
             {
                  // 在此处放置用户代码以初始化页面
                  PageSize = 2;
                  SqlConnection con=new SqlConnection();
                  con.C.AppSettings["ConnectionString"];
                  SqlCommand cmd=new SqlCommand();
                  cmd.CommandText="select message_title,message_content,message_content,message_time,message_author from message where message_id= '"+Request.QueryString["id"]+"'";
                  cmd.C;
                  con.Open();
                  
                  if(!Page.IsPostBack)
                  {

                       //设定PageSize

                       SqlDataReader reader=cmd.ExecuteReader();
                       if(reader.Read())
                       {
                           this.lblmauthor.Text=Convert.ToString(reader["message_author"]);
                           this.lblmcontent.Text=Convert.ToString(reader["message_content"]);
                           this.lblmessagetime.Text=Convert.ToString(reader["message_time"]);
                           this.lblmessagetitle.Text=Convert.ToString(reader["message_title"]);
                          
                       }

                       reader.Close();
                      

                       ListBind();
                       CurrentPage = 0;
                       ViewState["PageIndex"] = 0;

                       //计算总共有多少记录
                       RecordCount = CalculateRecord();
                       lblRecordCount.Text = RecordCount.ToString();

                       //计算总共有多少页
                    //float pagetemp=0;
                       if((RecordCount%PageSize)==0)
                       PageCount = (RecordCount/PageSize);
                       else
                       PageCount = (RecordCount/PageSize)+1;
                       lblPageCount.Text = PageCount.ToString();
                       ViewState["PageCount"] = PageCount;

             }
             }
           //****************************
             public int CalculateRecord()
             {
                  int intCount;
                  SqlConnection recon=new SqlConnection();
                  recon.C.AppSettings["ConnectionString"];
                  SqlCommand recmd=new SqlCommand();
                  recmd.CommandText="select count(*) as co from remessage where remessage_fatherid = '"+Request.QueryString["id"]+"'";
                  recmd.C;
                  recon.Open();
                  SqlDataReader reader1=recmd.ExecuteReader();
                  if(reader1.Read())
                  {
                       intCount = Int32.Parse(reader1["co"].ToString());
                  }
                  else
                  {
                       intCount = 0;
                  }
                  reader1.Close();
                  return intCount;
             }

             ICollection CreateSource()
             {

                  int StartIndex;
                  SqlConnection recon=new SqlConnection();
                  recon.C.AppSettings["ConnectionString"];

                  //设定导入的起终地址
                  StartIndex = CurrentPage*PageSize;
                  string strSel = "select * from remessage where remessage_fatherid = '"+Request.QueryString["id"]+"'";
                  DataSet ds = new DataSet();
                
                  SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel, recon);
                  MyAdapter.Fill(ds,StartIndex,PageSize,"remessage");
                  return ds.Tables["remessage"].DefaultView;
             }
              public void ListBind()
             {
                  this.mydatalist.DataSource = CreateSource();
                  this.mydatalist.DataBind();

                  lbnNextPage.Enabled = true;
                  lbnPrevPage.Enabled = true;
                  if(CurrentPage==(PageCount-1)) lbnNextPage.Enabled = false;
                  if(CurrentPage==0) lbnPrevPage.Enabled = false;
                  lblCurrentPage.Text = (CurrentPage+1).ToString();

             }

             public 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;
                  }

                  ViewState["PageIndex"] = CurrentPage;

                  ListBind();
             }

    ******************************
    <%@ Page language="c#" Codebehind="Page.cs" AutoEventWireup="false" Inherits="MikeCat_app2.MikeCat_DataListPage" %>
    <HTML>
    <HEAD>
    <title>欢迎光临</title>
    <meta name="GENERATOR" C>
    <meta name="CODE_LANGUAGE" C>
    <meta name="vs_defaultClientScript" c>
    <meta name="vs_targetSchema" chttp://schemas.microsoft.com/intellisense/ie5" target=_blank>http://schemas.microsoft.com/intellisense/ie5">
    <STYLE>
    TD { FONT-SIZE: 12px }
    .font { FONT-SIZE: 12px }
    </STYLE>
    </HEAD>
    <body MS_POSITI>
    <form id="form1" runat="server">
       <asp:Label id="Label5" runat="server" Font-Bold="True" style="LEFT: 184px; POSITION: absolute; TOP: 24px">DATALIST分页</asp:Label>
       <asp:datalist id="dList" Runat="server" HeaderStyle-BackColor="SteelBlue" Width="100%" EnableViewState="False"
        style="LEFT: 8px; POSITION: absolute; TOP: 64px">
        <HeaderTemplate>
         <TABLE cellSpacing="0" cellPadding="0" width="100%">
          <TR>
           <TD align="left">
            <FONT color="#ffffff">BLOGID</FONT></TD>
           <TD align="left">
            <FONT color="#ffffff">日志标题</FONT></TD>
           <TD align="left">
            <FONT color="#ffffff">日志内容</FONT></TD>
          </TR>
       </HeaderTemplate>
        <FooterTemplate>
         </TABLE>
        </FooterTemplate>
        <ItemTemplate>
         <tr>
          <td><%# DataBinder.Eval(Container.DataItem, "blogid") %></td>
          <td><%# DataBinder.Eval(Container.DataItem, "日志标题") %></td>
          <td><%# DataBinder.Eval(Container.DataItem, "日志内容") %></td>
         </tr>
        </ItemTemplate>
       </asp:datalist><font>
        <asp:Panel id="Panel1" runat="server" Width="552px" Height="48px" style="LEFT: 160px; POSITION: absolute; TOP: 288px"
         CssClass="font">
         <asp:linkbutton id="fp1" runat="server" CommandName="first">首页</asp:linkbutton>
         <asp:linkbutton id="pp1" runat="server" CommandName="prev">上一页</asp:linkbutton>
         <asp:linkbutton id="np1" runat="server" CommandName="next">下一页</asp:linkbutton>
         <asp:linkbutton id="lp1" runat="server" CommandName="last">尾页</asp:linkbutton>
         <asp:label id="Label1" runat="server">页次</asp:label>
         <asp:Label id="cp1" runat="server"></asp:Label>
         <asp:label id="Label2" runat="server">/</asp:label>
         <asp:Label id="pc1" runat="server"></asp:Label>

         <asp:label id="Label3" runat="server">每页记录数</asp:label>
         <asp:Label id="rc1" runat="server"></asp:Label>
         <asp:Label id="Label4" runat="server">选择跳转页码</asp:Label>
         <asp:DropDownList id="jp1" runat="server" AutoPostBack="True"></asp:DropDownList>
        </asp:Panel></font></form>
    </body>
    </HTML>


    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.OleDb;
    namespace MikeCat_app2
    {
    /// <summary>
    /// MikeCat_DataListPage 的摘要说明。
    /// *****************************************
    /// 功能:DataList数据分页
    /// *****************************************
    /// </summary>
    public class MikeCat_DataListPage : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataList dList;
    protected System.Web.UI.WebControls.Label Label1;
    protected System.Web.UI.WebControls.Label Label2;
    protected System.Web.UI.WebControls.Label Label3;
    protected System.Web.UI.WebControls.LinkButton pp1;
    protected System.Web.UI.WebControls.LinkButton lp1;
    protected System.Web.UI.WebControls.LinkButton np1;
    protected System.Web.UI.WebControls.LinkButton fp1;
    int PageSize,RecordCount,PageCount,CurrentPage;
    protected System.Web.UI.WebControls.Panel Panel1;
    protected System.Web.UI.WebControls.Label pc1;
    protected System.Web.UI.WebControls.Label rc1;
    protected System.Web.UI.WebControls.Label cp1;
    protected System.Web.UI.WebControls.Label Label4;
    protected System.Web.UI.WebControls.DropDownList jp1;
    protected System.Web.UI.WebControls.Label Label5;
    OleDbConnection conn;
    private void Page_Load(object sender, System.EventArgs e)
    {
       PageSize = 10;
       string connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(".")+"&#92;&#92;northwind.mdb;";
       conn = new OleDbConnection(connstr);
       rc1.Text=PageSize.ToString();
       CurrentPage=0;
       RecordCount=this.GetRecordCount();
       PageCount = (RecordCount%PageSize)>0?(RecordCount/PageSize)+1:(RecordCount/PageSize);
       pc1.Text=PageCount.ToString();
       ArrayList al=new ArrayList();
       for(int i=1;i<PageCount+1;i++)
       {
        al.Add(i);
       }
       if(!Page.IsPostBack)
       {
        jp1.DataSource=al;
        jp1.DataBind();
        mfbind();
       }
    }
    public int GetRecordCount()
      {
       conn.Open();
       OleDbCommand cmd=new OleDbCommand("select count(*) as cnt from mfblog",conn);
       int intCount=int.Parse(cmd.ExecuteScalar().ToString());
       cmd.Dispose();
       conn.Close();
       return intCount;
      }
    private IList DataSource()
    {
       int StartIndex;
       StartIndex = CurrentPage*PageSize;
       string strSql = "select * from mfblog";
       DataSet ds = new DataSet();
       OleDbDataAdapter da = new OleDbDataAdapter(strSql,conn);
       da.Fill(ds,StartIndex,PageSize,"mfblog");
       return ds.Tables["mfblog"].DefaultView;
      }
    private void mfbind()
    {
       dList.DataSource=(DataView)DataSource();
       dList.DataBind();
       np1.Enabled = true;
       pp1.Enabled = true;
       if(CurrentPage==(PageCount-1)) np1.Enabled = false;
       if(CurrentPage==0) pp1.Enabled = false;
       cp1.Text = (CurrentPage+1).ToString();
      }
    public void Page_OnClick(Object sender,CommandEventArgs e)
      {
       CurrentPage =int.Parse(cp1.Text.Trim())-1;
       PageCount =int.Parse(pc1.Text.Trim());

       string cnstr = e.CommandName;
       switch(cnstr)
       {
        case "first":
         CurrentPage=0;
         break;
        case "next":
         if(CurrentPage<(PageCount-1)) CurrentPage++;
         break;
        case "prev":
         if(CurrentPage>0) CurrentPage--;
         break;
        case "last":
         CurrentPage=PageCount-1;
         break;
       }
       mfbind();
      }
      #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
    }
      /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
       this.fp1.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
       this.pp1.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
       this.np1.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
       this.lp1.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
       this.jp1.SelectedIndexChanged += new System.EventHandler(this.jp1_SelectedIndexChanged);
      this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion
    private void jp1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
       CurrentPage=int.Parse(jp1.SelectedItem.Text.Trim())-1;
       mfbind();
    }
    }
    }

  • 相关阅读:
    Window7下手动编译最新版的PCL库
    C和C++中的异常处理
    队列之卡片游戏
    C/C++笔记
    最真的梦——文/林清玄
    库函数与系统调用的区别
    hdu2653之BFS
    使用ffmpeg+crtmpserver搭建文件的伪直播
    ZOJ3705:Applications
    c_c++基础问题(平时读书时笔记)
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979162.html
Copyright © 2011-2022 走看看