一个ASP.NET分页的例子

原创 2006年06月15日 15:26:00

<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SqlClient" %>
<Script Language="C#" Runat="Server">
SqlConnection MyConn;
int PageSize,RecordCount,PageCount,CurrentPage;
public void Page_Load(Object src,EventArgs e)
{
//设定PageSize
PageSize = 5;

//连接语句
string MyConnString = "Data Source=59.231.0.20;Initial Catalog=pubs;user id=sa;password=sa";
MyConn = new SqlConnection(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 titles";
SqlCommand MyComm = new SqlCommand(strCount,MyConn);
SqlDataReader dr = MyComm.ExecuteReader();
if(dr.Read())
{
// intCount = Int32.Parse(dr["co"].ToString());
intCount=(int)dr["co"];
}
else
{
intCount = 0;
}
dr.Close();
return intCount;
}

ICollection CreateSource()
{

int StartIndex;

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

SqlDataAdapter MyAdapter = new SqlDataAdapter(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" ID="Form1">
共有<asp:Label id="lblRecordCount" ForeColor="red" runat="server" />条记录&nbsp; 当前为<asp:Label id="lblCurrentPage" ForeColor="red" runat="server" />/<asp:Label id="lblPageCount" ForeColor="red" runat="server" />页&nbsp;
<asp:DataList id="score" runat="server" HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="Gainsboro"
EditItemStyle-BackColor="yellow">
<EditItemStyle BackColor="Yellow"></EditItemStyle>
<AlternatingItemStyle BackColor="Gainsboro"></AlternatingItemStyle>
<ItemTemplate>
姓名:<%# DataBinder.Eval(Container.DataItem,"title") %>
<asp:LinkButton id="btnSelect" runat="server" CommandName="edit" Text="编辑"></asp:LinkButton>
</ItemTemplate>
<HeaderStyle BackColor="#AAAADD"></HeaderStyle>
</asp:DataList>共<%=PageCount%>页
<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>

Asp.net之真假分页大揭秘、使用AspNetPager实现真分页

最近在web界面的时候,遇到了一些非常现实的问题。最让人头疼的问题就是显示数据中的书画作品。这些书画作品都会以图片的形式展示给用户。 起初做的时候并没有想太多,只按着最简单的方式将所有的图片从数据库中...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014年01月11日 15:07
  • 17701

很好的分页实例

Action     private Page page = new Page();          public Page getPage()     {         return ...
  • u010227447
  • u010227447
  • 2014年05月07日 14:31
  • 535

ASP.NET GridView分页+排序+自定义样式【常规功能比JS插件使用简单】

现在基本都是在用一些前台table框架,做一些分页加排序处理 脑子里面就记得用repeat 处理完table然后调用第三方tablejs插件做分页和排序。 感觉这样能够做到想要的效果。 但是用第...
  • qq873113580
  • qq873113580
  • 2016年05月16日 15:30
  • 1889

asp.net mvc基于jQuery+Ajax实现无刷新分页

自己写了个采用asp.net mvc框架的Demo,分页功能采用的是jQuery+Ajax实现的无刷新分页。 解决方案思想:页面数据的初始加载和按页加载都是通过ajax来进行,页面分页链接点击后利用...
  • wangzl1163
  • wangzl1163
  • 2016年06月22日 15:05
  • 5374

asp.net中ListView分页功能

.aspx代码
  • yayun0516
  • yayun0516
  • 2014年11月17日 15:52
  • 1624

asp.net 结合mysql存储过程进行分页代码

终于,算是搞出来了,效率可能不是很好,但是我也觉得不错了。贴代码吧直接:也算是对自己学习mysql的一个记录。 复制代码 代码如下: CREATE PROCEDURE p_pageList ...
  • tt2153
  • tt2153
  • 2016年03月21日 14:44
  • 181

asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)

Jquery+Ajax分页测试 $(function () { InitPage(1, 10); $(".nextP...
  • smartsmile2012
  • smartsmile2012
  • 2015年01月21日 18:03
  • 1943

ASP.NET(四):ASP.net实现假分页显示数据

导读:在做数据查询的时候,有的时候查询到的数据有很多。通常呢,我们一般都是去拖动右侧边的滚动条。但是,有了分页后,我们就可以不必是使用滚动条,而直接通过分页查看我们想要的数据。在分页的过程中,有分为真...
  • u013034889
  • u013034889
  • 2015年05月09日 16:03
  • 1307

Asp.net不拖GridView控件,用Table实现其分页和删除

听人说通过拖控件开发出来的程序,运行效率都不怎么高。 确实,有的网站用拖控件一两天就可以做出来,但是全部靠拖控件会产生很多没有必要的垃圾代码,访问量少还好,但是如果一个网页多出10KB的垃圾代码,一个...
  • qq_32688731
  • qq_32688731
  • 2017年01月03日 10:29
  • 632

asp.net使用listview分页显示数据

http://blog.csdn.net/goodshot/article/details/6020902 http://www.educity.cn/develop/494078.html htt...
  • QZC295919009
  • QZC295919009
  • 2015年01月21日 11:11
  • 1335
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个ASP.NET分页的例子
举报原因:
原因补充:

(最多只允许输入30个字)