zoukankan      html  css  js  c++  java
  • [Transfer]DataList 自定义分页 (C#)

    Source:

    http://www.cnblogs.com/youxia/archive/2006/08/14/476815.html
    http://www.net0791.com/article/100997.htm
    http://www.xker.com/Html/bcyy/net/2006_04_03_07_886_5.html



    <% @ Page Language="C#" %> 
    <% @ Import Namespace="System.Data" %> 
    <% @ Import Namespace="System.Data.OleDb" %> 
    <Script Language="C#" Runat="Server"> 
    /* 
    Create By 飞刀 
    http://www.aspcn.com 
    2001-7-25 01:44 

    Support .Net Framework Beta 2 
    */
     
    OleDbConnection MyConn; 
    int PageSize,RecordCount,PageCount,CurrentPage; 
    public void Page_Load(Object src,EventArgs e) 

    //设定PageSize 
    PageSize = 10

    //连接语句 
    string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(".")+"..\\DataBase\\db1.mdb;"
    MyConn 
    = new OleDbConnection(MyConnString); 
    MyConn.Open(); 

    //第一次请求执行 
    if(!Page.IsPostBack) 

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

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

    //计算总共有多少页 
    PageCount = RecordCount/PageSize; 
    lblPageCount.Text 
    = PageCount.ToString(); 
    ViewState[
    "PageCount"= PageCount; 
    }
     
    }
     
    //计算总共有多少条记录 
    public int CalculateRecord() 

    int intCount; 
    string strCount = "select count(*) as co from Score"
    OleDbCommand MyComm 
    = new OleDbCommand(strCount,MyConn); 
    OleDbDataReader dr 
    = MyComm.ExecuteReader(); 
    if(dr.Read()) 

    intCount 
    = Int32.Parse(dr["co"].ToString()); 
    }
     
    else 

    intCount 
    = 0
    }
     
    dr.Close(); 
    return intCount; 
    }
     

    ICollection CreateSource() 


    int StartIndex; 

    //设定导入的起终地址 
    StartIndex = CurrentPage*PageSize; 
    string strSel = "select * from Score"
    DataSet ds 
    = new DataSet(); 

    OleDbDataAdapter MyAdapter 
    = new OleDbDataAdapter(strSel,MyConn); 
    MyAdapter.Fill(ds,StartIndex,PageSize,
    "Score"); 

    return ds.Tables["Score"].DefaultView; 
    }
     
    public void ListBind() 

    score.DataSource 
    = CreateSource(); 
    score.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(); 

    }
     
    </script> 
    <html> 
    <head> 
    <title></title> 
    </head> 
    <body> 
    <form runat="server"> 
    共有
    <asp:Label id="lblRecordCount" ForeColor="red" runat="server" />条记录  
    当前为
    <asp:Label id="lblCurrentPage" ForeColor="red" runat="server" />/<asp:Label id="lblPageCount" ForeColor="red" runat="server" />页  

    <asp:DataList id="score" runat="server" 
    HeaderStyle
    -BackColor="#aaaadd" 
    AlternatingItemStyle
    -BackColor="Gainsboro" 
    EditItemStyle
    -BackColor="yellow" 
    > 
    <ItemTemplate> 
    姓名:
    <%# DataBinder.Eval(Container.DataItem,"Name"%> 
    <asp:LinkButton id="btnSelect" Text="编辑" CommandName="edit" runat="server" /> 
    </ItemTemplate> 
    </asp:DataList> 
    <asp:LinkButton id="lbnPrevPage" Text="上一页" CommandName="prev" OnCommand="Page_OnClick" runat="server" /> 
    <asp:LinkButton id="lbnNextPage" Text="下一页" CommandName="next" OnCommand="Page_OnClick" runat="server" /> 

    </form> 
    </body> 
    </html>
  • 相关阅读:
    Could A New Linux Base For Tablets/Smartphones Succeed In 2017?
    使用libhybris,glibc和bionic共存时的TLS冲突的问题
    6 Open Source Mobile OS Alternatives To Android in 2018
    Using MultiROM
    GPU drivers are written by the GPU IP vendors and they only provide Android drivers
    Jolla Brings Wayland Atop Android GPU Drivers
    How to Use Libhybris and Android GPU Libraries with Mer (Linux) on the Cubieboard
    闲聊Libhybris
    【ARM-Linux开发】wayland和weston的介绍
    Wayland and X.org problem : Why not following the Android Solution ?
  • 原文地址:https://www.cnblogs.com/apiapia/p/655145.html
Copyright © 2011-2022 走看看