ListView实现分页

ListView实现分页有两种方式,第一种通过DataPager控件。第二种是编写sql语句实现。第一种是一次性将数据从数据库中取出。

只适用于数据量小的分页。

1、通过DataPager控件实现分页:

1、右击项目-添加新项-添加数据集

2.将需要的表拖进数据集

3.在数据集里可以添加查询语句。

4.在页面中添加ObjectDataSource控件、DataPager控件、ListView控件。将数据集绑定给ObjectDataSource控件,

在将ListViw控件的DataSourceID设置为ObjectDataSource的id。然后设置DataPager控件的PagedControlID为listView的id。这样就可以绑定给ListView控件了。当然在ListView控件中选择分页也会自动在内部创建DataPage控件。

这样实现的分页是查询出表中所有的数据,并不适合数据量大分页。

第二种通过编写sql语句实现:

1.在数据集中添加表,在添加查询,查询语句为:

select * from (select *,Row_number() over(order by id) rownum from gooodsInfo)  t   where
t.rownum > @startRowIndex and  t.rownum <= @startRowIndex + @maximumRows.

ps:Row_number() 是SqlServer中的内置函数,作用是获取结果集的序号  over(order by id) 是根据id来排序。Row_number()必须结合over来使用。rownum是别名

上面使用子查询的原因是如果是select * from  表名  where 字段=...  这样的写法,这里的字段是从表里去拿的。如果你要用序号,表里是没有序号的,是会报列名无效的。所以必须用子查询。

上面的两个参数@startRowIndex 表示开始的行数,@maximumRows表示本页的行数,这里的参数名称不能随便命名的。这里的参数必须跟ObjectDataSource

中的startRowIndex参数和maximumRows相同。方法命名为GetPagedData。

然后在添加sql语句。选择select(返回单个值)。这个方法用于返回表中有多少行。

先按照正常的流程配置ObjectDataSource,让ListView自动生成Template,再修改ObjectDataSource的EnablePaging = “True”,SelectCountMethod设置为取得行数的方法。 然后在把SelectMethod 设置为上面添加的GetPagedData。

 

DataPager的PageSize属性为一页的条数。DataPager中按钮显示风格由Fields中的字段设置,可以放置多个字段,分NextPreviousPagerField
(上一页、下一页、首页、末页等)、NumericPagerField(数字页号)、TemplatePagerField用模板自定义。在代码中的Fields中修改。
NextPreviousPageField主要属性:ButtonCssClass: 按钮的样式;ButtonType,按钮渲染成什么
(Button按钮、Link超链接、Image图片);
FirstPageImageUrl,【第一页】按钮图片地址;
FirstPageText 【第一页】 按钮文本
showFirstButton,是否显示【第一页】
NumericPageField主要属性:ButtonCount,数字的个数;按钮渲染成什么(Button、Link、Image);CurrentPageLabelCssClass当前页文本的样式:NumericButtonCSSClass数字按钮的样式。

 

转载于:https://www.cnblogs.com/sjyzz/p/7729675.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值