欢迎光临
我们一直在努力

自定义分页UserControl 分享及探讨!-ASP教程,ASP应用

建站超值云服务器,限时71元/月

———-pager.ascx————————————-

<%@ control language="c#" autoeventwireup="false" codebehind="test.pager.ascx.cs" inherits="pager" targetschema="http://schemas.microsoft.com/intellisense/ie5" %>

<asp:label id="lbl_pageinfo" runat="server">还未用pagerbind()方法绑定</asp:label>&nbsp;

<asp:linkbutton id="btn_first" runat="server" visible="false">首页</asp:linkbutton>&nbsp;<asp:linkbutton id="btn_pre" runat="server" visible="false">前页</asp:linkbutton>&nbsp;<asp:linkbutton id="btn_next" runat="server" visible="false">下页</asp:linkbutton>&nbsp;<asp:linkbutton id="btn_last" runat="server" visible="false">尾页</asp:linkbutton>&nbsp;<asp:label id="lbl_1" runat="server" visible="false">转到</asp:label>

<asp:dropdownlist id="drop_curpage" runat="server" autopostback="true" visible="false">

<asp:listitem value="0">0</asp:listitem>

</asp:dropdownlist>

<asp:label id="lbl_2" runat="server" visible="false">页</asp:label>

———-end——————————————–

———-pager.ascx.cs————————————-

namespace test

{

using system;

using system.data;

using system.drawing;

using system.web;

using system.web.ui.webcontrols;

using system.web.ui.htmlcontrols;

/// <summary>

/// pager 的摘要说明。

/// </summary>

public class pager : system.web.ui.usercontrol

{

protected system.web.ui.webcontrols.linkbutton btn_first;

protected system.web.ui.webcontrols.linkbutton btn_pre;

protected system.web.ui.webcontrols.linkbutton btn_next;

protected system.web.ui.webcontrols.linkbutton btn_last;

protected system.web.ui.webcontrols.dropdownlist drop_curpage;

protected system.web.ui.webcontrols.label lbl_1;

protected system.web.ui.webcontrols.label lbl_2;

protected system.web.ui.webcontrols.label lbl_pageinfo;

public event eventhandler myclick;

private void page_load(object sender, system.eventargs e)

{

// 在此处放置用户代码以初始化页面

if (!page.ispostback)

{

rectotal = 0;

pagesize = 10;

curpage = 0;

lang = 0; //中文版

}

}

#region pager控件使用帮助及参数说明

/*

* 版本:v1.0

本控件带有三个自定义属性和一个方法.具体如下:

属性:

rectotal 记录总数 默认值:0

pagesize 每页记录数 默认值:0

curpage 当前页 默认值:0

lang 版本语言 默认值:0 注:0为中文版,1为英文版

方法:

pagerbind 绑定当前自定义控件,如不绑定,该控件则不能显示到页面上

*/

#endregion

#region web 窗体设计器生成的代码

override protected void oninit(eventargs e)

{

//

// codegen: 该调用是 asp.net web 窗体设计器所必需的。

//

initializecomponent();

base.oninit(e);

}

/// <summary>

/// 设计器支持所需的方法 – 不要使用代码编辑器

/// 修改此方法的内容。

/// </summary>

private void initializecomponent()

{

this.btn_first.click += new system.eventhandler(this.btn_first_click);

this.btn_pre.click += new system.eventhandler(this.btn_pre_click);

this.btn_next.click += new system.eventhandler(this.btn_next_click);

this.btn_last.click += new system.eventhandler(this.btn_last_click);

this.drop_curpage.selectedindexchanged += new system.eventhandler(this.drop_curpage_selectedindexchanged);

this.load += new system.eventhandler(this.page_load);

}

#endregion

#region 共用参数传递

public int rectotal //记录总数

{

get { return (int)viewstate["rectotal"]; }

set { viewstate["rectotal"] = value; }

}

public int pagesize //每页记录数

{

get { return (int)viewstate["pagesize"]; }

set { viewstate["pagesize"] = value; }

}

public int curpage //当前页

{

get { return (int)viewstate["curpage"]; }

set { viewstate["curpage"] = value; }

}

public int lang //语言选择

{

get { return (int)viewstate["lang"]; }

set { viewstate["lang"] = value; }

}

#endregion

#region 相关方法及事件

public void pagerbind()

{

viewstate["pagetotal"]=((int)viewstate["rectotal"]%(int)viewstate["pagesize"]>0) ? (int)viewstate["rectotal"]/(int)viewstate["pagesize"]+1 : (int)viewstate["rectotal"]/(int)viewstate["pagesize"]; //页总数

if ((int)viewstate["lang"]==0)

{

lbl_pageinfo.text="共<font color=red>"+viewstate["rectotal"].tostring()+"</font>条信息 <font color=red>"+viewstate["pagesize"].tostring()+"</font>条/页 当前<font color=red>"+((int)viewstate["curpage"]+1).tostring()+"</font>/<font color=red>"+viewstate["pagetotal"].tostring()+"</font>页";

}

else

{

lbl_pageinfo.text="total<font color=red>"+viewstate["rectotal"].tostring()+"</font>info <font color=red>"+viewstate["pagesize"].tostring()+"</font>/page current<font color=red>"+((int)viewstate["curpage"]+1).tostring()+"</font>/<font color=red>"+viewstate["pagetotal"].tostring()+"</font>page";

lbl_1.text = "to";

lbl_2.text = "page";

btn_first.text = "first";

btn_pre.text = "forward";

btn_next.text = "next";

btn_last.text = "last";

}

drop_curpage.items.clear();

for (int i=0;i<(int)viewstate["pagetotal"];i++)

{

drop_curpage.items.add(convert.tostring(i+1));

}

drop_curpage.selectedindex = drop_curpage.items.indexof(drop_curpage.items.findbyvalue(convert.tostring((int)viewstate["curpage"]+1)));

btn_first.visible = true;

btn_pre.visible = true;

btn_next.visible = true;

btn_last.visible = true;

lbl_1.visible = true;

lbl_2.visible = true;

drop_curpage.visible = true;

btn_first.enabled = true;

btn_pre.enabled = true;

btn_next.enabled = true;

btn_last.enabled = true;

if ((int)viewstate["curpage"]==0)

{

btn_first.enabled = false;

btn_pre.enabled = false;

btn_next.enabled = true;

btn_last.enabled = true;

}

if ((int)viewstate["curpage"]==( (int)viewstate["pagetotal"]-1) )

{

btn_first.enabled = true;

btn_pre.enabled = true;

btn_next.enabled = false;

btn_last.enabled = false;

}

if (( (int)viewstate["pagetotal"]-1) == 0 )

{

btn_first.enabled = false;

btn_pre.enabled = false;

btn_next.enabled = false;

btn_last.enabled = false;

}

}

private void drop_curpage_selectedindexchanged(object sender, system.eventargs e)

{

viewstate["curpage"] = drop_curpage.selectedindex;

pagerbind();

if (myclick != null)

myclick(this, eventargs.empty);

}

private void btn_first_click(object sender, system.eventargs e)

{

viewstate["curpage"] = 0;

pagerbind();

if (myclick != null)

myclick(this, eventargs.empty);

}

private void btn_pre_click(object sender, system.eventargs e)

{

viewstate["curpage"] = (int)viewstate["curpage"]-1;

pagerbind();

if (myclick != null)

myclick(this, eventargs.empty);

}

private void btn_next_click(object sender, system.eventargs e)

{

viewstate["curpage"] = (int)viewstate["curpage"]+1;

pagerbind();

if (myclick != null)

myclick(this, eventargs.empty);

}

private void btn_last_click(object sender, system.eventargs e)

{

viewstate["curpage"] = (int)viewstate["pagetotal"]-1;

pagerbind();

if (myclick != null)

myclick(this, eventargs.empty);

}

#endregion

}

}

——————————————————————————

———–调用页面webform1.aspx——————————————–

<%@ page language="c#" codebehind="webform1.aspx.cs" autoeventwireup="false" inherits="test.webform1" %>

<%@ register tagprefix="uc1" tagname="pager" src="pager.ascx" %>

<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >

<html>

<head>

<title>webform2</title>

<meta name="generator" content="microsoft visual studio .net 7.1">

<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>

<form id="form1" method="post" runat="server">

<font face="宋体">

<asp:datagrid id="datagrid1" runat="server"></asp:datagrid></font>

<uc1:pager id="pager1" runat="server" onmyclick="getpage"></uc1:pager>

</form>

</body>

</html>

————————————————————————————

———–调用页面webform1.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 test

{

/// <summary>

/// webform2 的摘要说明。

/// </summary>

public class webform1 : system.web.ui.page

{

protected system.web.ui.webcontrols.datagrid datagrid1;

protected test.pager pager1;

private void page_load(object sender, system.eventargs e)

{

// 在此处放置用户代码以初始化页面

datagrid1bind(0);

}

#region web 窗体设计器生成的代码

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

private void datagrid1bind(int page)

{

datagrid1.datasource = mydatasource; //此处请自行绑定当前页数据集的数据源

datagrid1.databind();

pager1.rectotal = mytotal; //此处请自行绑定数据集总记录数

pager1.pagesize = 10;

pager1.curpage = page;

pager1.lang = 0; //0为中文版,1为英文版

pager1.pagerbind();

}

public void getpage(object sender, eventargs e)

{

datagrid1bind(pager1.curpage);

}

}

}

————————————————————————-

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 自定义分页UserControl 分享及探讨!-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章