日期:2014-05-18  浏览次数:20568 次

asp.net中用reptear控件如何分页,给出vb源代码有分,散分了,来者有分,顶者有分
asp.net中用reptear控件如何分页,给出vb源代码有分,来者有分,顶者有分
给出C#代码的没分

------解决方案--------------------
<% @ Page Language= "C# " %>

<% @ Import Namespace= "System.Data " %>

<% @ Import Namespace= "System.Data.OleDb " %>

<Script Language= "C# " Runat= "Server ">

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&