.NET用户自定义分页控件
来源:互联网 发布:视频剪切软件下载 编辑:程序博客网 时间:2024/05/21 10:50
页面设计器内代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Pager.ascx.cs" Inherits="UserControl_Pager" %>
<table width="98%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td align="right" style="padding-right: 20px; padding-top: 5px">
<asp:HyperLink ID="hpl_First" runat="server">首页</asp:HyperLink> <asp:HyperLink
ID="hpl_Prev" runat="server">上页</asp:HyperLink>
<asp:HyperLink ID="hpl_Next" runat="server">下页</asp:HyperLink> <asp:HyperLink
ID="hpl_Last" runat="server">末页</asp:HyperLink>
<asp:Label ID="lb_CurrentPage" runat="server"></asp:Label>/<asp:Label ID="lbl_PageCount"
runat="server"></asp:Label>页 共<asp:Label ID="lbl_ItemCount" runat="server"></asp:Label>条记录
转到
<asp:TextBox ID="txb_Page" runat="server" Width="30px" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"></asp:TextBox>页 <asp:LinkButton
ID="lbtn_goto" runat="server" OnClick="lbtn_goto_Click" Style="ime-mode: disabled;">转到</asp:LinkButton>
</td>
</tr>
</table>
后台.cs代码:
public
string
url;
//页面地址
public
string
Params;
//页面传值参数
public
int
CurPage;
//当前页码
private
void
Page_Load(
object
sender, System.EventArgs e)
{
if
(!IsPostBack)
{
ViewState[
"pageUrl"
] = url;
ViewState[
"pageParams"
] = Params;
}
}
#region 数据绑定
/// <summary>
/// 数据绑定
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public
PagedDataSource PagerDataBind(DataView dv)
{
PagedDataSource pds =
new
PagedDataSource();
pds.AllowPaging =
true
;
//允许分页
pds.DataSource = dv;
CurPage = 1;
//设置当前页的索引
try
{
if
(Request.QueryString[
"Page"
] !=
null
)
{
CurPage = Convert.ToInt32(Request.QueryString[
"Page"
].ToString());
}
if
(CurPage < 1 || CurPage > pds.PageCount)
{
Response.Redirect(url +
"?Page=1"
+ Params);
}
}
catch
{
Response.Redirect(url +
"?Page=1"
+ Params);
}
pds.CurrentPageIndex = CurPage - 1;
//显示状态信息
lbl_ItemCount.Text = pds.DataSourceCount.ToString();
//当前页
lb_CurrentPage.Text = CurPage.ToString();
this
.txb_Page.Text = CurPage.ToString();
//总页数
lbl_PageCount.Text = pds.PageCount.ToString();
//如果当前页面不是首页
if
(!pds.IsFirstPage)
{
hpl_Prev.NavigateUrl = url +
"?Page="
+ Convert.ToString(CurPage - 1) + Params;
hpl_First.NavigateUrl = url +
"?Page=1"
+ Params;
}
//如果当前页面不是最后一页
if
(!pds.IsLastPage)
{
hpl_Next.NavigateUrl = url +
"?Page="
+ Convert.ToString(CurPage + 1) + Params;
hpl_Last.NavigateUrl = url +
"?Page="
+ pds.PageCount.ToString() + Params;
}
return
pds;
}
#endregion
#region Web 窗体设计器生成的代码
/// <summary>
/// 初始化
/// </summary>
/// <param name="e"></param>
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
#region 跳转到
/// <summary>
/// 跳转到
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected
void
lbtn_goto_Click(
object
sender, EventArgs e)
{
if
(Convert.ToInt32(txb_Page.Text) > Convert.ToInt32(
this
.lbl_PageCount.Text))
{
Response.Redirect(ViewState[
"pageUrl"
] +
"?Page="
+ lbl_PageCount.Text + ViewState[
"pageParams"
]);
}
else
{
Response.Redirect(ViewState[
"pageUrl"
] +
"?Page="
+ txb_Page.Text + ViewState[
"pageParams"
]);
}
}
#endregion
}
页面调用:
<%@ Register Src="../UserControl/Pager.ascx" TagName="Pager" TagPrefix="uc" %>
html代码:
<uc:Pager ID="Pager" runat="server"></uc:Pager>
最后页面后台给分页控件赋值,调用PagerDataBind()方法。
//获取 域名
string MainName=HttpContext.Current.Request.Url.Host;
//获取 站点名+页面名:
string url = HttpContext.Current.Request.Url.AbsolutePath;
//获取 端口:
int port = HttpContext.Current.Request.Url.Port;
webpage.url = string.Format(@"http://" + MainName +":"+ port + url);
---------------------------------
总结:分页效率一般,不是很好,但是很便利,适合2k到3k的数据量。
0 0
- .NET用户自定义分页控件
- Asp.Net 可自定义分页用户控件
- ASP.NET分页存储过程自定义用户控件
- ASP.NET分页存储过程自定义用户控件
- asp.net自定义分页控件
- .net用户自定义控件创建
- C#.net用户自定义控件。
- ASP.NET自定义用户控件
- 分页及页码导航 用户控件 .NET 分页源码 分页
- 用户控件&自定义控件----.Net再学
- 【asp.net】用户控件&自定义控件
- Asp.Net 可定制分页用户控件
- Asp.Net 可定制分页用户控件
- asp.net mvc 分页用户控件
- 自定义分页控件源码asp.net(c#)
- .net 服务器端自定义分页控件 简单示例
- Asp.Net自定义控件分页功能
- asp.net web页面自定义分页控件
- 我对贝叶斯分类器的理解
- Busy study
- 重要:MAVEN下创建web项目
- 第十一周项目五 当年第几天
- ios之第三方开源类库及下载地址
- .NET用户自定义分页控件
- IBM网站是个好东西!
- Java 环境变量自动设置代码(采用批处理方法)
- cookie 与 session 的区别、联系
- Scala学习笔记之面向对象
- 解决arraycollection赋值修改过程中,出现TypeError: Error #1009: Cannot access a property or method of a null obje
- 素数求和问题
- eclipse下将java工程变成web工程
- 嵌入式 Centos开机自动挂载windows中的ntfs磁盘