036. asp.netWeb用户控件之五使用用户控件实现分页数据导航
UserDataPager.ascx用户控件代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserDataPager.ascx.cs" Inherits="UserDataPager" %>
<style type="text/css">
.style8
{
}
.style11
{
width: 249px;
font-size: small;
}
</style>
<table cellpadding="0" cellspacing="0" style="border: 1px solid #999999; font-size: small; height: 25px; width: 403px;"
bgcolor="#F2F2F2">
<tr>
<td style="text-align: center" class="style11">
共有数据<asp:Label ID="lbldatanum" runat="server" ForeColor="Red"></asp:Label>
条 每页<asp:Label ID="lblnum" runat="server" ForeColor="Red"></asp:Label>
条 第<asp:Label ID="lblCurrentPage" runat="server" ForeColor="Red"></asp:Label>
页/共<asp:Label ID="lblcount" runat="server" Font-Size="9pt" ForeColor="Red"></asp:Label>
页</td>
<td style="text-align: center" class="style8">
<asp:LinkButton ID="lbtnFirst" runat="server" Font-Size="9pt"
onclick="lbtnFirst_Click" Enabled="False">|<</asp:LinkButton>
<asp:LinkButton ID="lbtnForward" runat="server" Font-Size="9pt"
onclick="lbtnForward_Click" Enabled="False"><</asp:LinkButton>
<asp:LinkButton ID="lbtnBackwards" runat="server" Font-Size="9pt"
onclick="lbtnBackwards_Click">></asp:LinkButton>
<asp:LinkButton ID="lbtnLast" runat="server" Font-Size="9pt"
onclick="lbtnLast_Click">>|</asp:LinkButton>
</td>
</tr>
</table>
UserDataPager.ascx.cs代码:
public partial class UserDataPager : System.Web.UI.UserControl
{
protected static PagedDataSource pds = new PagedDataSource();//创建一个分页数据源的对象且一定要声明为静态
private SqlConnection conn; private object operateID;
public object OperateID
{
get { return operateID; }
set { operateID = value; }
}
private int pageNum=;
public int PageNum
{
get { return pageNum; }
set { pageNum = value; }
}
private string strSQL = "";
public string StrSQL
{
get { return strSQL; }
set { strSQL = value; }
}
private string sql = "";
public string DataSQL
{
get { return sql; }
set { sql = value; }
} private void BindDataList(int currentpage)
{
string mytype = operateID.GetType().ToString();
mytype = mytype.Substring(mytype.LastIndexOf(".") + , mytype.Length - - mytype.LastIndexOf("."));
conn = new SqlConnection(strSQL);
pds.AllowPaging = true;//允许分页
pds.PageSize = pageNum;//每页显示3条数据
pds.CurrentPageIndex = currentpage;//当前页为传入的一个int型值
conn.Open();//打开数据库连接
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sda.Fill(ds);//把执行得到的数据放在数据集中
pds.DataSource = ds.Tables[].DefaultView;//把数据集中的数据放入分页数据源中
lblcount.Text = pds.PageCount.ToString();
lblCurrentPage.Text =(pds.CurrentPageIndex + ).ToString();
lblnum.Text = pageNum.ToString();
lbldatanum.Text = ds.Tables[].Rows.Count.ToString();
if (pds.PageCount > )
{
lbtnBackwards.Enabled = true;
lbtnLast.Enabled = true;
}
else
{
lbtnBackwards.Enabled = false;
lbtnLast.Enabled = false;
}
if (mytype == "GridView")
{
((GridView)(operateID)).DataSource = pds;
((GridView)(operateID)).DataBind();
}
else if (mytype == "DataList")
{
((DataList)(operateID)).DataSource = pds;
((DataList)(operateID)).DataBind();
}
conn.Close();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDataList();
}
}
protected void lbtnFirst_Click(object sender, EventArgs e)//首页
{
pds.CurrentPageIndex = ;
BindDataList(pds.CurrentPageIndex);
lbtnFirst.Enabled = false;
lbtnForward.Enabled = false;
lbtnBackwards.Enabled = true;
lbtnLast.Enabled = true; }
protected void lbtnForward_Click(object sender, EventArgs e)//上一页
{
if (pds.CurrentPageIndex >= )
{
pds.CurrentPageIndex = pds.CurrentPageIndex - ;
BindDataList(pds.CurrentPageIndex);
lbtnBackwards.Enabled = true;
lbtnLast.Enabled = true;
if (pds.CurrentPageIndex == )
{
lbtnForward.Enabled = false;
lbtnFirst.Enabled = false;
}
}
}
protected void lbtnBackwards_Click(object sender, EventArgs e)//下一页
{
if (pds.CurrentPageIndex <= pds.PageCount - )
{
lbtnFirst.Enabled = true;
lbtnForward.Enabled = true;
pds.CurrentPageIndex = pds.CurrentPageIndex + ;
BindDataList(pds.CurrentPageIndex);
if (pds.CurrentPageIndex == pds.PageCount - )
{
lbtnBackwards.Enabled = false;
lbtnLast.Enabled = false;
}
}
}
protected void lbtnLast_Click(object sender, EventArgs e)//尾页
{
pds.CurrentPageIndex = pds.PageCount - ;
BindDataList(pds.CurrentPageIndex);
lbtnLast.Enabled = false;
lbtnBackwards.Enabled = false; lbtnFirst.Enabled = true;
lbtnForward.Enabled = true;
}
}
Default.aspx代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register src="UserDataPager.ascx" tagname="UserDataPager" tagprefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<style type="text/css">
.style7
{
width: 100%;
height: 42px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div style="width: 1019px; text-align: center; height: 54px;"> <table align="center" cellpadding="0" cellspacing="0" class="style7">
<tr>
<td style="text-align: left">
<uc1:UserDataPager ID="UserDataPager1" runat="server" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table> </div>
<asp:GridView ID="GridView1" runat="server" BackColor="White"
BorderColor="#CCCCCC" BorderStyle="Ridge" BorderWidth="1px"
CellPadding="3" Width="403px">
<RowStyle ForeColor="#000066" />
<FooterStyle BackColor="White" ForeColor="#000066" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
</form>
</body>
</html>
Default.aspx.cs代码:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UserDataPager1.OperateID = GridView1; //设置针对哪个控件进行分页描述
UserDataPager1.StrSQL = "server=.;uid=sa;pwd=123.456;database=TYW;";//设置链接字符串
UserDataPager1.DataSQL = "select * from card";
UserDataPager1.PageNum = 6;
}
}
最终效果:

036. asp.netWeb用户控件之五使用用户控件实现分页数据导航的更多相关文章
- 037. asp.netWeb用户控件之五使用用户控件实现文件上传功能
fileUpload.ascx代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile= ...
- 033. asp.netWeb用户控件之二将页面转换成web控件和使用Web控件显示热点新闻
访问Web用户控件的属性 ASP.NET提供的各种服务器控件都有其自身的属性和方法,程序开发人员可以灵活地使用服务器控件中的属性和方法开发程序.在用户控件中,程序开发人员也可以自行定义各种属性和方法, ...
- ASP.NET MVC中加载WebForms用户控件(.ascx)
原文:ASP.NET MVC中加载WebForms用户控件(.ascx) 问题背景 博客园博客中的日历用的是ASP.NET WebForms的日历控件(System.Web.UI.WebControl ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- JS获取用户控件中的子控件Id
用户控件 <asp:HiddenField ID="hfGradeId" runat="server" /> <asp:HiddenField ...
- asp.net web 开发登录相关操作的控件LoginName、LoginStatus和LoginView控件使用详解
http://book.51cto.com/art/200909/154039.htm http://book.51cto.com/art/200909/154041.htm ASP.NET提供了一套 ...
- ASP.NET MVC显示WebForm网页或UserControl控件
ASP.NET MVC显示WebForm网页或UserControl控件 学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user ...
- 念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件
学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user control呢?这个灵感(算不上灵感,只能算是想法)是来自前些天有写过一 ...
- 【Asp.net之旅】--因自己定义控件注冊而引发的思考
前言 近期在开发远洋的SOA系统平台,开发使用的是.NET平台.对于Asp.net并不困难,但该系统的开发并非全然依靠Asp.net.而是自身封装好的框架.这套框架是远洋地产购买的微软的开发平台,项目 ...
随机推荐
- Http协议总结
Http协议(Hyper Text Transfer Protocol)是目前网络上使用最广泛的,面向应用层的协议.它基于传输层的TCP协议进行通信.它是一种通用的,无状态的协议(不对当前的状态进行记 ...
- cxf的soap风格+spirng4+maven 服务端
简介 SOAP 比较复杂,基于XML,有对应规范:REST利用HTTP请请求方式GET,POST,PUT,delete约定具体操作.简单的说,SOAP通过传输XML,XML定义了请求和响应的具体数据, ...
- Nginx reopen reload作用及工作过程
http://www.iigrowing.cn/nginx-reopen-reload-zuo-yong-ji-gong-zuo-guo-cheng.html Nginx reopen reload作 ...
- myeclipse注册码生成器
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader; public cl ...
- jquery 常用基础方法
1 jquery常用方法: 2 取得标签元素里面内容与修改: 3 1.text()方法: 4 $(document).ready(function(){ 5 //alert("文档加载完毕& ...
- HDU 1240 Asteroids! 解题报告
//这道题做完我只有 三个感受 第一:坑: 第二 : 坑! 第三:还是坑! 咳咳 言归正传 WA了无数次之后才发现是输入进去时坐标时z, y, x的顺序输入的 题解 : 类似胜利大逃亡 只 ...
- awakeFromNib与viewDidLoad的区别
当一个nib文件对应两个类,File's Owner的class为XXXViewController,Objects下的View对应的为XXXView时: awakeFromNib:在XXXView. ...
- HDU 2955 01背包(思维)
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 1402 fft 模板题
题目就是求一个大数的乘法 这里数字的位数有50000的长度,按平时的乘法方式计算,每一位相乘是要n^2的复杂度的,这肯定不行 我们可以将每一位分解后作为系数,如153 = 1*x^2 + 5*x^1 ...
- C语言基础--二维数组
二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...