[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>
原文地址:https://www.cnblogs.com/apiapia/p/655145.html