仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 709|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计Asp.Net分页和AspNetPager控件的利用

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:20:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。上面就来重点说说这几种分页体例:
一样平常情形下我们都是经由过程sql语句来分页,这在不管哪一种开辟语音都是通用的,
利用sql语句大概存储历程分页的体例最次要的是要在读取数据的时分把sql语句大概存储历程写好,它的道理是只读取以后要显现的几行纪录,以是要依据页数和每页显现的数量来写语句,以下:
SelecttoppageSize*fromNewswhereidnotin(selecttop(Page-1)*pageSizeidfromNews)
很明显只需将pageSize和Page作为参数就能够了,然后再前台挪用的时分只需指定以后页数和每页显现的数量,就能够完成分页了,为了显现总数量,还能够读取一切数量,必要注重的时分,假如是自界说分页视图,因为.net在回传的时分不保留以后页,以是要利用ViewState来保留页数,每次只读取所必要的几笔记录,以是合适做年夜型网站数目对照年夜的时分利用
别的一种分页体例就是利用.net供应的PageDataSource类来分页,
PageDataSource是微软供应一个用于分页利用的类,集成了绑定控件的一些办法,在利用的时分,我们只必要从数据库读取我们所要的数据,绑定到PageDataSource便可,然后同意PageDataSource能够分页,指定以后页和每页要显现的数量,如许就能够很好的取得的总的数量,分离控件,ViewState就能够完成自界说分页视图,办法以下:
PagedDataSourcepageDataSource=newPagedDataSource();
pageDataSource.DataSource=NewsManager.GetNews();//一切纪录

pageDataSource.AllowPaging=true;

pageDataSource.PageSize=16;

pageDataSource.CurrentPageIndex=PagerC1;

this.Repeater1.DataSource=pageDataSource;

this.Repeater1.DataBind();

因为PageDataSource是将一切的数据都读出来,然后再分页的,一切合适一些小型网站,好比企业站,数目不是很年夜的时分利用,也许2w之内的数据利用

下面是经常使用的两种分页体例,上面在来看看分页视图控件AspNetPager的用法:

AspNetPager属于第三方控件,就是说既不是微软开辟的,也不是你开辟的,而是由其他手艺员本人开辟的,共享给我们用的控件,以是在利用的时分,我们起首要从网高低载上去,然后和其他控件一样,起首将其放到工具箱内,这里你能够间接拖出去,大概也能够右击工具菜单项---选择项,找到目次增加出去便可
上面复杂说一下它的一些属性和办法
AlwaysShow:暗示以后在只要一页的时分,控件是显现仍是不显现
PageSize:每页要显现的数量
RecordCount:总数量
NumericButtonCount:每页要显现的页码数量
注:下面三个属性就是用来显现分页控件的视图,可是他们只是为了显现分页控件的视图。
FirstPageText="第一页"
LastPageText="最初一页"
NextPageText="下一页"
PrevPageText="前一页"
PagingButtonSpacing="12":每一个页码之间的宽度

NumericButtonTextFormatString="[{0}]":页码显现的款式

EnableUrlRewriting="true":是不是启用url重写,默许的情形下是域名?page=页码
如:http://www.hnzbtb.com/NewList.aspx?page=3,不外你能够对其修正从头
UrlRewritePattern:重写的url,如:AspNetPager1.UrlRewritePattern="NewList.aspx?dd={0}"
注:这里要提到的是假如要改动要显现页码的参数,那就必需修正显现,然后再修正url中的参数
UrlPaging="True":是不是只用url传送参数来显现分页,假如是FALSE,则url稳定,形态栏则显现
SubmitButtonText="转到"ShowInputBox="Always":用来办理转到按钮的显现
两个经常使用的办法
1、PageChanging:分页之前的操纵,以是要想取得以后控件的页码就必需在办法内赋值才能够,不然AspNetPager1.CurrentPageIndex永久取得确当前页的值都是1,由于就相称于你没点击任何页码,从入手下手都是1,以是你不管点击谁人页码说,之前的都是1
protectedvoidAspNetPager1_PageChanging(objectsrc,Wuqi.Webdiyer.PageChangingEventArgse)

{

Pager=e.NewPageIndex-1;

DataBindNews();

}
publicvoidDataBindNews()

{

PagedDataSourcepageDataSource=newPagedDataSource();

pageDataSource.DataSource=NewsManager.GetNews();

pageDataSource.AllowPaging=true;

AspNetPager1.RecordCount=NewsManager.GetNewsCount();

pageDataSource.PageSize=16;

pageDataSource.CurrentPageIndex=Pager;

this.Repeater1.DataSource=pageDataSource;

this.Repeater1.DataBind();

}
之以是减1是由于要分离的分页办法和PageDataSource都是从0入手下手的
GrilView中自界说的分页,我们也会用到它的
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)

{

this.GridView1.PageIndex=e.NewPageIndex;

dataBindProduct(0,null);

}

2、PageChanged:点击页码以后的操纵,以是能够间接经由过程AspNetPager1.CurrentPageIndexC1取得以后页的页数,由于之前的确点击了页码数,很明显会取得以后的页码数
protectedvoidAspNetPager1_PageChanged(objectsrc,EventArgse)

{

DataBindNews();

}
publicvoidDataBindNews()

{

PagedDataSourcepageDataSource=newPagedDataSource();

pageDataSource.DataSource=NewsManager.GetNews();

pageDataSource.AllowPaging=true;

AspNetPager1.RecordCount=NewsManager.GetNewsCount();

pageDataSource.PageSize=16;

pageDataSource.CurrentPageIndex=AspNetPager1.CurrentPageIndexC1;

this.Repeater1.DataSource=pageDataSource;

this.Repeater1.DataBind();

}
假如利用了AspNetPager来分页,那末只需指定总数给aspNetPager,以后页用aspNetPager来指定,并包管每页显现的数量aspNetPager和PageDataSource指定的分歧就能够完成分页了,复杂吧,这个页数的把持就不利用viewstate来保留了,页数和页显现纪录间接经由过程Asp.Net来把持就好了
必要注重的是有些必要分歧的器材,假如没有分歧,就有大概招致不和谐,好比该分4页的,可是aspNetPager只显现了2页等,这些都必要注重的!
上面复杂分享一下分页控件的一个款式:

CSS款式:

.pages
{
color:#999;
}
.pagesa,.pages.cpb
{
text-decoration:none;
float:left;
padding:05px;
border:1pxsolid#075198;
background:#ffff;
margin:02px;
font-size:11px;
color:#000;
}
.pagesa:hover
{
background-color:#075198;
color:#fff;
border:1pxsolid#075198;
text-decoration:none;
}
.pages.cpb
{
font-weight:bold;
color:#fff;
background:#075198;
border:1pxsolid#075198;
}
c++是语言,其实C++和java的应用范围根本就不一样的。在java应用的领域内,c++是不合适的。所以微软才搞了C#和Java对抗。
小女巫 该用户已被删除
沙发
发表于 2015-1-18 10:48:34 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
老尸 该用户已被删除
板凳
发表于 2015-1-21 20:50:35 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
谁可相欹 该用户已被删除
地板
发表于 2015-1-30 22:14:05 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
柔情似水 该用户已被删除
5#
发表于 2015-2-6 16:18:36 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-17 05:03:06 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
不帅 该用户已被删除
7#
发表于 2015-3-5 16:11:26 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
若相依 该用户已被删除
8#
发表于 2015-3-12 10:30:56 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
只想知道 该用户已被删除
9#
发表于 2015-3-19 20:37:06 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表