首页 > 语言 > 关键词  > ASP.NET最新资讯  > 正文

Asp.net url分页的用户控件

2008-09-11 11:40 · 稿源:互联网

出处:snooker_li的专栏

最近做一个相册程序频繁的需要分页,所以就想写一个用户控件出来。

代码如下:

AutoPage.ascx页面

<%@ControlLanguage="c#"AutoEventWireup="false"Codebehind="AutoPage.ascx.cs"Inherits="album.AutoPage"TargetSchema="https://schemas.microsoft.com/intellisense/ie5"%>
<tableborder="0"cellpadding="0"cellspacing="0">
<tr>
<tdvalign="middle"height="30">共<asp:labelid="lb_ItemCount"ForeColor="Red"runat="server"></asp:label>条记录&nbsp;</td>
<tdvalign="middle"height="30"><asp:hyperlinkid="hpl_First"runat="server">首页</asp:hyperlink>&nbsp;</td>
<tdvalign="middle"height="30"><asp:hyperlinkid="hpl_Prev"runat="server">上页</asp:hyperlink>&nbsp;</td>
<tdvalign="middle"height="30">当前<asp:labelid="lb_CurrentPage"runat="server"></asp:label>页/共<asp:labelid="lb_PageCount"runat="server"></asp:label>页&nbsp;</td>
<tdvalign="middle"height="30"><asp:hyperlinkid="hpl_Next"runat="server">下页</asp:hyperlink>&nbsp;</td>
<tdvalign="middle"height="30"><asp:hyperlinkid="hpl_Last"runat="server">末页</asp:hyperlink>&nbsp;</td>
<tdvalign="middle"height="30"><asp:textboxid="txb_Page"runat="server"Width="32px"BorderStyle="Solid"BorderWidth="1px"
BorderColor="Silver"></asp:textbox></td>
<tdvalign="middle"height="30"><asp:ImageButtonid="btn_go"runat="server"ImageUrl="album_images/go.gif"></asp:ImageButton></td>
<tdvalign="middle"height="30"><asp:labelid="lb_url"runat="server"Visible="False"></asp:label><asp:Labelid="lb_Params"runat="server"Visible="False"></asp:Label></td>
</tr>
</table>

AutoPage.ascx.cs页面

namespacealbum
{
usingSystem;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Web;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;

///<summary>
///UC的摘要说明。
///</summary>
publicclassAutoPage:System.Web.UI.UserControl
{
protectedSystem.Web.UI.WebControls.HyperLinkhpl_First;
protectedSystem.Web.UI.WebControls.HyperLinkhpl_Prev;
protectedSystem.Web.UI.WebControls.HyperLinkhpl_Next;
protectedSystem.Web.UI.WebControls.Labellb_CurrentPage;
protectedSystem.Web.UI.WebControls.Labellb_PageCount;
protectedSystem.Web.UI.WebControls.HyperLinkhpl_Last;
publicintpagesize;
publicstringPageP;
protectedSystem.Web.UI.WebControls.TextBoxtxb_Page;
protectedSystem.Web.UI.WebControls.Labellb_url;
protectedSystem.Web.UI.WebControls.Labellb_ItemCount;
publicstringurl;
protectedSystem.Web.UI.WebControls.Labellb_Params;
protectedSystem.Web.UI.WebControls.ImageButtonbtn_go;
publicstringParams;

privatevoidPage_Load(objectsender,System.EventArgse)
{

}

publicPagedDataSourcedatabind(DataTabledt)
{
lb_url.Text=url;
lb_Params.Text=Params;
//创建分页类
PagedDataSourceobjPage=newPagedDataSource();
//设置数据源
objPage.DataSource=dt.DefaultView;
//允许分页
objPage.AllowPaging=true;
//设置每页显示的项数
objPage.PageSize=pagesize;
//设置当前页的索引
intCurPage=1;
try
{
CurPage=Convert.ToInt32(PageP);
if(CurPage<1||CurPage>objPage.PageCount)
{
Response.Redirect(url+"?page=1"+Params);
}
}
catch
{
Response.Redirect(url+"?page=1"+Params);
}
objPage.CurrentPageIndex=CurPage-1;
//显示状态信息
lb_ItemCount.Text=dt.Rows.Count.ToString();
lb_CurrentPage.Text=CurPage.ToString();
lb_PageCount.Text=objPage.PageCount.ToString();

//如果当前页面不是首页
if(!objPage.IsFirstPage)
{
hpl_Prev.NavigateUrl=url+"?Page="+Convert.ToString(CurPage-1)+Params;
hpl_First.NavigateUrl=url+"?Page=1"+Params;
}
//如果当前页面不是最后一页
if(!objPage.IsLastPage)
{
hpl_Next.NavigateUrl=url+"?Page="+Convert.ToString(CurPage+1)+Params;
hpl_Last.NavigateUrl=url+"?Page="+objPage.PageCount.ToString()+Params;
}
returnobjPage;
}


#regionWeb窗体设计器生成的代码
overrideprotectedvoidOnInit(EventArgse)
{
//
//CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///<summary>
///设计器支持所需的方法-不要使用代码编辑器
///修改此方法的内容。
///</summary>
privatevoidInitializeComponent()
{
this.btn_go.Click+=newSystem.Web.UI.ImageClickEventHandler(this.btn_go_Click);
this.Load+=newSystem.EventHandler(this.Page_Load);

}
#endregion

privatevoidbtn_go_Click(objectsender,System.Web.UI.ImageClickEventArgse)
{
Response.Redirect(lb_url.Text+"?Page="+txb_Page.Text+lb_Params.Text);
}


}
}

调用的时候需要设置几个参数pagesize(每页显示数据个数),PageP(传递的分页参数),ParmP(其他的Request.QureyString参数),url(页面地址)

绑定的时候只需要把控件的DataSource=AutoPage1.databind(DataTable变量)

举报

  • 相关推荐
  • 苹果用户最好购车选择!小米YU7深度兼容:iPhone、Apple Watch都能控车

    小米YU7已开启交付,首批车主都已经提车回家了。 今天小米汽车官方介绍,YU7延续了SU7的设计理念,充分针对苹果用户优化用车体验,打造让苹果用户也能轻松上手的车型。 首先是iPhone控车更加便捷高效: 支持UWB近场控车与iOS小组件远程控车,比如携带激活了UWB钥匙的苹果手机站在车前3秒,就能打开前备箱; 也可以通过iPhone上的Action Button自定义车控功能,比如一键控车�

  • 最好用的AI生成PPT工具全球横评:谁才是用户效率与专业的首选?

    文章对比评测了5款主流AI驱动的PPT生成工具,重点从生成速度、内容逻辑、模板质量、国际化体验等维度进行分析。PPT.AI综合表现最佳,其极速响应、强大逻辑架构、海量国际模板库和无缝全球化体验尤为突出,特别适合跨境专业人士;Gamma以交互体验和设计感见长;Presentations.AI生成速度最快;ChatPPT对中文用户最友好;iSlide则依托强大设计资源库更适合团队协作。总体而言,P

  • ppt自动生成工具最好用的3个

    文章介绍了当前AI生成PPT工具的发展现状,重点推荐了"秒出PPT"这一专业平台。该平台具有三大特色功能:1)智能对话式生成,支持中途修改需求;2)提供三种编辑模式(纯文本、纯设计和文本+设计);3)支持导入文档自动排版,提供"保持原文"和"AI智能修改"两种模式。平台还拥有丰富的模板库,支持在线更换颜色、字体等设计元素。虽然需要购买会员,但相比市面上质量参差不齐的同类产品,该工具在交互体验和功能完整性上表现突出。

  • ChatGPT们重塑了对话框,钉钉今天要重塑表格

    ​自从1979年,丹·布里克林(Dan Bricklin)和鲍勃·弗兰克斯顿(Bob Frankston)在苹果当时划时代的 Apple II 电脑上做出了第一张可以自动计算和更新的电子表格 VisiCalc 后,表格就成为了计算机用数据方式理解人类世界的基座。不过,在更多的时候,没人这样讨论它。横横竖竖几个格子,表格无处不在,它看起来太普通了。 然而计算机诸多繁荣的根基,都建立在一张张表格之上,无�

  • 美团外卖用户下单量突破历史峰值 受影响用户优惠券可次日继续使用

    美团发放大量且大额外卖优惠券,随着大量用户涌入,美团一度出现宕机,许多网友在社交平台反馈,页面显示访问出错,出现点不了外卖的情况。 对此,美团外卖官微发文回应,称7月5日下午6点前后,因用户下单量突破历史峰值,触发了服务器限流保护,美团App小范围地区用户出现了短时服务异常,现已全面恢复,大家可以正常下单。 期间部分受影响用户的优惠券,可延�

  • OPPO K13 Turbo系列真机亮相:自带风扇+RGB

    OPPO K13 Turbo系列真机已经现身在bilibili world《胜利女神:NIKKE》展区。 从图片来看,OPPO K13 Turbo系列系列后摄区域有点类似一加13T,采用了矩形金属方案,主摄下方就是散热风扇,同时外圈还自带RGB等效。 这个设计方案可以明显看出,该机是主打电竞体验。 风扇模组采用电镀镍工艺,放弃普通喷涂,带来更好的防水、防锈效果,并且号称风力提升120%,从而实现更强、更持久�

  • Perplexity推出AI浏览器Comet:想用得开1400元/月的订阅

    由英伟达支持的Perplexity AI推出了一款名为Comet的AI驱动网络浏览器。 Comet浏览器的核心卖点是其AI驱动的交互体验,公司表示它将整个浏览会话转变为单一、无缝的交互,将复杂的工作流程简化为流畅的对话。

  • OPPO首款内置风扇手机!OPPO K13 Turbo跑分出炉:确认骁龙8s Gen4

    这款新机还有一个非常重要的亮点内置风扇手机,这也是OPPO首款自带风扇的手机。 该机后置主摄下方有一个风扇开孔,可以迅速散发内部热量。 风扇模组采用电镀镍工艺,放弃普通喷涂,带来更好的防水、防锈效果,并且号称风力提升120%,从而实现更强、更持久的游戏性能。 第四代骁龙8s的性能大家已经在测试中看到了,采用4nm打造,全大核方案,安兔兔跑分能突破240万�

  • AI日报:智谱上线PPT生成功能AI Slides;可灵 AI 发布可图2.1模型

    本文介绍了AI日报栏目及近期AI领域多项突破性进展:1)智谱推出免费AI Slides工具,基于GLM模型快速生成高质量PPT;2)可灵AI发布可图2.1模型,支持180多种风格图像生成;3)NVIDIA推出DiffusionRenderer技术,实现视频到可编辑3D场景转换;4)墨刀AI新增30秒生成高保真原型功能;5)Higgsfield推出Soul ID工具,10张照片即可生成虚拟形象;6)谷歌DeepMind开源GenAI Processors工具库;7)谷歌Veo新增图像转视频功能;8)Mistral AI发布专为代码建模的Devstral2507系列模型。这些创新展示了AI在内容生成、3D建模、产品设计等领域的快速发展。

  • Android 16安全升级,将警示用户Stingray监控、伪基站等安全风险

    在即将推出的 Android 16 系统中,谷歌为用户隐私又上了一道“防火墙”:这一次,目标是伪基站(又称 Stingray 设备)。