首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络安全-> 黑客攻防
DataGrid的自定义分页UserControl-.NET教程,数据库应用
作者:网友供稿 点击:224
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
pagechange.ascx
================================================================
<%@ control language="c#" autoeventwireup="false" codebehind="pagechange.ascx.cs" inherits="ex_test.pagechange" targetschema="http://schemas.microsoft.com/intellisense/ie5"%>
<font face="宋体">
<table id="table1" cellspacing="1" cellpadding="1" width="98%" border="0">
<tr>
<td align="right"><asp:linkbutton id="firstpage" runat="server">[首 页]</asp:linkbutton>&nbsp;
<asp:linkbutton id="prevpage" runat="server">[上一页]</asp:linkbutton>&nbsp;
<asp:linkbutton id="nextpage" runat="server">[下一页]</asp:linkbutton>&nbsp;
<asp:linkbutton id="lastpage" runat="server">[末 页]</asp:linkbutton>&nbsp;
<asp:literal id="literal1" runat="server" text="转到第"></asp:literal><asp:textbox id="newpageindex" runat="server" width="31px"></asp:textbox><asp:literal id="literal2" runat="server" text="页"></asp:literal>&nbsp;
<asp:button id="newpagego" runat="server" text="go"></asp:button>&nbsp;</td>
</tr>
</table>
</font>
=======================================================================


pagechange.ascx.cs
===================================================================
namespace ex_test
{
using system;
using system.data;
using system.drawing;
using system.web;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
using system.data.sqlclient;

/// <summary>
/// pagechange 的摘要说明。
/// </summary>
public abstract class pagechange : system.web.ui.usercontrol
{
protected system.web.ui.webcontrols.button newpagego;
protected system.web.ui.webcontrols.literal literal2;
protected system.web.ui.webcontrols.textbox newpageindex;
protected system.web.ui.webcontrols.literal literal1;
protected system.web.ui.webcontrols.linkbutton lastpage;
protected system.web.ui.webcontrols.linkbutton nextpage;
protected system.web.ui.webcontrols.linkbutton prevpage;
protected system.web.ui.webcontrols.linkbutton firstpage;
protected int currentpage;
protected int pagesize;
protected string proc;
protected system.web.ui.webcontrols.datagrid datagrid;


public int _currentpage
{
get
{
return currentpage;
}
set
{
currentpage = value;
}
}

public int _pagesize
{
get
{
return pagesize;
}
set
{
pagesize = value;
}
}

public string _proc
{
get
{
return proc;
}
set
{
proc = value;
}
}

public datagrid _datagrid
{
get
{
return datagrid;
}
set
{
datagrid = value;
}
}

protected int rowcount;
private void page_load(object sender, system.eventargs e)
{
// 在此处放置用户代码以初始化页面
if(!ispostback)
{
using(sqlconnection conn = new sqlconnection("user id=sa;password=admin;server=server-mk;initial catalog=pubs;timeout=90")
{
sqlcommand cmd = new sqlcommand("select count(*) as expr1 from authors",conn);
cmd.connection.open();
rowcount = (int)cmd.executescalar();
cmd.connection.close();
viewstate["rowscount"] = rowcount;
}
viewstate["currentpage"] = currentpage;
fillgrid(proc,currentpage,pagesize,datagrid);
}
}

#region web form designer generated code
override protected void oninit(eventargs e)
{
//
// codegen:该调用是 asp.net web 窗体设计器所必需的。
//
initializecomponent();
base.oninit(e);
}

/// 设计器支持所需的方法 - 不要使用
/// 代码编辑器修改此方法的内容。
/// </summary>
private void initializecomponent()
{
this.firstpage.click += new system.eventhandler(this.firstpage_click);
this.prevpage.click += new system.eventhandler(this.prevpage_click);
this.nextpage.click += new system.eventhandler(this.nextpage_click);
this.lastpage.click += new system.eventhandler(this.lastpage_click);
this.newpagego.click += new system.eventhandler(this.newpagego_click);
this.load += new system.eventhandler(this.page_load);

}
#endregion

private void fillgrid(string proc,int currentpage,int pagesize,datagrid datagrid)
{
using(sqlconnection conn = new sqlconnection("user id=sa;password=admin;server=server-mk;initial catalog=pubs;timeout=90")
{
sqlcommand cmd = new sqlcommand(proc,conn);
cmd.commandtype = commandtype.storedprocedure;
cmd.parameters.add("@currentpage",currentpage);
cmd.parameters.add("@pagesize",pagesize);
cmd.connection.open();

sqldatareader sdr = cmd.executereader();
datagrid.datasource = sdr;
datagrid.databind();
sdr.close();
cmd.connection.close();
}
}

//首页
private void firstpage_click(object sender, system.eventargs e)
{
//disabled首页按钮和上一页按钮
firstpage.enabled = false;
prevpage.enabled = false;
currentpage = 0;
viewstate["currentpage"] = currentpage;
fillgrid(proc,currentpage,pagesize,datagrid);
//如果不止一页
if((int)viewstate["rowscount"]>((int)viewstate["currentpage"]+1)*pagesize)
{
nextpage.enabled = true;
}
if((int)viewstate["rowscount"]>((int)viewstate["currentpage"]+1)*pagesize)
{
lastpage.enabled = true;
}
}

//上一页
private void prevpage_click(object sender, system.eventargs e)
{

nextpage.enabled = true;
lastpage.enabled = true;
currentpage = (int)viewstate["currentpage"]-1;
viewstate["currentpage"] = currentpage;
fillgrid(proc,currentpage,pagesize,datagrid);
//如果到首页则disabled首页和上一页按钮
if((int)viewstate["currentpage"]==0)
{
prevpage.enabled = false;
firstpage.enabled = false;
//return;
}
}

//下一页
private void nextpage_click(object sender, system.eventargs e)
{
viewstate["currentpage"] = (int)viewstate["currentpage"]+1;
currentpage = (int)viewstate["currentpage"];
fillgrid(proc,currentpage,pagesize,datagrid);
prevpage.enabled = true;
firstpage.enabled = true;
//如果已经到了最后一页
if(((int)viewstate["currentpage"]+1)*pagesize>(int)viewstate["rowscount"])
{
nextpage.enabled = false;
lastpage.enabled = false;
}
}

//末页
private void lastpage_click(object sender, system.eventargs e)
{
lastpage.enabled = false;
nextpage.enabled = false;
viewstate["currentpage"] = (int)math.ceiling((int)viewstate["rowscount"]/pagesize);
currentpage = (int)viewstate["currentpage"];
fillgrid(proc,currentpage,pagesize,datagrid);
//如果有不止一页的纪录
if((int)viewstate["currentpage"]>1)
{
firstpage.enabled = true;
prevpage.enabled = true;
}
//如果只有一页的纪录
else
{
firstpage.enabled = false;
prevpage.enabled = false;
}
}

//跳转
private void newpage_go(string i)
{
try
{
int pageindex = int32.parse(i);
if (pageindex<=0)
{
pageindex = 0;
}
else
{
if(pageindex>(int)math.ceiling((int)viewstate["rowscount"]/pagesize))
{
pageindex = (int)math.ceiling((int)viewstate["rowscount"]/pagesize);
}
else
{
pageindex--;
}
}
//简单起见,将所有的linkbutton全部改为enable=true
firstpage.enabled = true;
nextpage.enabled = true;
lastpage.enabled = true;
prevpage.enabled = true;
viewstate["currentpage"] = pageindex;
fillgrid(proc,(int)viewstate["currentpage"],pagesize,datagrid);
}
catch(exception)
{
return;
}
}

private void newpagego_click(object sender, system.eventargs e)
{
newpage_go(newpageindex.text.trim());
}

}
}

pageform.aspx
==================================================================
<%@ page language="c#" codebehind="pageform.aspx.cs" autoeventwireup="false" inherits="ex_test.pageform" %>
<%@ register tagprefix="mk" tagname="pagechange" src="pagechange.ascx"%>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
<head>
<title>pageform</title>
<meta name="generator" content="microsoft visual studio 7.0">
<meta name="code_language" content="c#">
<meta name="vs_defaultclientscript" content="javascript">
<meta name="vs_targetschema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body ms_positioning="gridlayout">
<form id="pageform" method="post" runat="server">
<aspatagrid id="datagrid1" style="z-index: 101; left: 57px; position: absolute; top: 54px" runat="server" allowcustompaging="true" allowpaging="true">
<pagerstyle visible="false"></pagerstyle>
</aspatagrid>
<aspanel id="panel1" style="z-index: 102; left: 60px; position: absolute; top: 20px" runat="server" width="634px">
<mkagechange id="pc" runat="server"></mkagechange>
</aspanel><font face="宋体"></font>
</form>
</body>
</html>
=================================================================

pageform.aspx.cs
=================================================================
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;

namespace ex_test
{
/// <summary>
/// pageform 的摘要说明。
/// </summary>
public class pageform : system.web.ui.page
{
protected system.web.ui.webcontrols.datagrid datagrid1;
protected system.web.ui.webcontrols.panel panel1;
protected ex_test.pagechange pc;


private void page_load(object sender, system.eventargs e)
{
// 在此处放置用户代码以初始化页面
//if(!ispostback)
//{
pc._currentpage = 0;
pc._datagrid = datagrid1;
pc._pagesize =7;
pc._proc = "page_change";
//}
}

#region web form designer generated code
override protected void oninit(eventargs e)
{
//
// codegen:该调用是 asp.net web 窗体设计器所必需的。
//
initializecomponent();
base.oninit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void initializecomponent()
{
this.load += new system.eventhandler(this.page_load);

}
#endregion
}

}
=================================================================
存储过程:
create procedure dbo.page_change
/*
(
@parameter1 datatype = default value,
@parameter2 datatype output
)
*/
(
@pagesize int,
@currentpage int
)

as
/* set nocount on */

select *,identity(int,1,1) as num into #tempauthors from authors

select * from #tempauthors where num > (@pagesize*@currentpage) and num < (@pagesize*@currentpage+@pagesize+1)

return

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·J2EE平台介绍-JSP教程,J2ME开发
·自己制作友好的页面“确认对话框”-ASP教程,ASP应用
·DataAdapter是如何更新数据库数据的?-.NET教程,数据库应用
·jsp项目中实现关闭浏览器后吊线,只要不关闭不操作也保持在线-JSP教程,Jsp/Servlet
·企业Java技术开发技巧2则-JSP教程,Java技巧及代码
·刚刚整理好-汉字转拼音缩写的函数-.NET教程,评论及其它
·关于数据返回给调用页面-ASP教程,数据库相关
·如何使用C#压缩文件及注意的问题!-.NET教程,C#语言
·数据库安装程序-.NET教程,数据库应用
·DataGrid的自定义分页UserControl-.NET教程,数据库应用
最新文章
·王通:网站推广的18种秘笈_营销推广
·什么是mfa,以及停止mfa的好处_网赚技巧
·google adsense 域名保护功能是否作恶_网赚技巧
·关于无效点击-adsense团队资深专员如是说_网赚技巧
·google adsense将以人民币支付_站长访谈
·bbmao的神秘配方:打破中文聚类搜索的低迷_站长访谈
·你的网站为什么粘不住流量?_站长心得
·决定网站成败重要的六个因素_站长心得
·widnows vista是吃内存大户 优化vista攻略_windows vista
·首页所应该达到的几个目标(1)_站长心得
相关主题
  • datagrid分页,增加首页、最后一页(源码) _asp.net技巧
  • datagridview 的分页处理_asp.net技巧
  • datagrid的多行提交_asp.net技巧
  • datagrid和datalist中commandbutton的问题_asp.net技巧
  • datagrid 的 全选/取消全选 控制(checkbox) _asp.net技巧
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭