.net分页源码示例

分页|示例

<% @ 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 = "server=127.0.0.1;database=example;uid=sa;pwd=1234567";
 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 TABLE1";
 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 TABLE1";
 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">
共有<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,"title") %>
  <asp:LinkButton id="btnSelect" Text="编辑" CommandName="edit" runat="server" />
 </ItemTemplate>
</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>

时间: 2024-10-27 08:35:23

.net分页源码示例的相关文章

ASP调用存储过程源码示例

ASP调用存储过程源码示例 以下是代码:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%     Set conn = CreateObject("ADODB.Connection")     strCon = "Provider=SQLNCLI;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=Nor

PHP写内容分页源码剖析

所谓内容分页,就是根据你自己设定的标签,将较长的内容按你设置的标签来进行分页,本文涉及的两个地方,一个是地址的获取,网上有很多这样的分页教程,但是地址都是固定的,如果页面中有评论分页以及文章ID调用过来,就会非常麻烦,文中采用了PHP100视频教程中分页原理 (http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2009/0416/807.html) 思路,有不清楚的童鞋可以看下此教程,同时运用了一些内容处理函数以及数

进程通信-求前后台程序源码示例

问题描述 求前后台程序源码示例 打个比方,迅雷软件有一个thunder负责界面,还有一个thunderPlatform负责P2P等.想找一个类似的前后台通信的程序,linux或者windows平台上的都皆可,进程间的通信方法不限,最好是socket或者pipes,如果能有概设和详设就更好了,最近要做一个类似的项目想参考下前后台进程通信,万分感谢! 解决方案 http://blog.csdn.net/xnwyd/article/details/7359506http://blog.chinauni

AJAX错误提交系统源码示例

摘要 当一些应用程序崩溃时,它们往往向用户提供一个机会来提交关于该错误的信息.该信息能够帮助开发者追踪并修正错误.本文将向你展示如何在你的JavaScript/AJAX应用程序中实现这样的功能. 一. 引言 如果可以存取终端用户的计算机的话,那么终端用户的JavaScript错误就很容易调试.既然你不能实现这样的操作,那么你可以采取下面这样的措施:让用户向你发送你修正该问题需要的内容. 当象Mozilla浏览器这样的应用程序崩溃时,它们会启动一个错误提交程序.这些程序将询问用户是否愿意提交错误报

ASP求平均分源码示例

用ASP求平均分源码 <%dim fs(4),i,out_nfs(0)=85fs(1)=80fs(2)=75fs(3)=70fs(4)=65for i=0 to (ubound(fs))  out_n=out_n+fs(i)nextout_n = out_n/(ubound(fs)+1)response.write "平均分为:"&"    "&out_n%>

关于二级目录拖拽排序的实现(源码示例下载)_php实例

在开发项目中经常碰到二级目录形式.比如文章模块.产品模块,很多应多都基于两级分类形式.而普通的解决排序方案,不管是一级分类,还是多级分类,都是由管理员在后台手动编辑同级分类排序的值来设置排序,根据该值的大小决定显示的顺序.这样的操作方式比较烦琐.jQuery有对于排序采用拖拽方式来实现排序,从用户层面,这样的操作非常直观,操作简便.曾经在一个项目中,产品分类采用的是两级分类,显示如下图所示: 在排序问题上,决定使用jQuery的拖拽插件来实现:拖拽一级分类时,对一级分类进行排序:拖拽某一级分类下

使用ODBC数据库管理Serv-U的FTP用户及相关ASP编程[附源码示例下载]_应用技巧

Serv-U是一种被广泛运用的FTP服务器端软件,支持3x/9x/ME/NT/2K等全Windows系列.可以设定多个FTP服务器.限定登录用户的权限.登录主目录及空间大小等,功能非常完备. 它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等. Serv-U 支持基于ODBC数据库的用户和用户组设置,这为我们基于Serv-U编程提供了良好的接口,接下来我们介绍如何具体实现. 一.使用ODBC数据库管理Serv-U 前提条件:

PHP内容分页源码

PHP代码: <?php   $contents="fjka;fjsa;#page#批量生[newpage]#page#成分成文#page#件并且加#page#上分页代码";   //带了分页标签的原内容  $cons="fjka;fjsa;adsfasdfas码";  //不带分页标签的原内容   function    conpage($contents) {      $pagesss='#page#';  //设定分页标签      $a=strpos

asp新闻文章小偷程序原理和简单源码示例

程序|示例|小偷程序 现在网上流行的小偷程序比较多,有新闻类小偷,音乐小偷,下载小偷,那么它们是如何做的呢,下面我来做个简单介绍,希望对各位站长有所帮助. (一)原理小偷程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页.比如新闻小偷程序,很多都是调用了sina的新闻网页,并且对其中的html进行了一些替换,同时对广告也进行了过滤.用小偷程序的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将随着该网站的更新而更新:可以节省服务器资源,一般小偷程序就几个文件,所有网页内