datalist分页
- 格式:doc
- 大小:26.50 KB
- 文档页数:2
&nbs">
JAVAList集合转Page(分页对象)/*** @version 1.0* @author: fwjia*/import java.util.List;public class PageModel<T> {/**** 当前页*/private int page = 1;/**** 总页数*/public int totalPages = 0;/**** 每页数据条数*/private int pageRecorders;/**** 总页数*/private int totalRows = 0;/**** 每页的起始数*/private int pageStartRow = 0;/**** 每页显⽰数据的终⽌数*/private int pageEndRow = 0;/**** 是否有下⼀页*/private boolean hasNextPage = false;/**** 是否有前⼀页*/private boolean hasPreviousPage = false;/**** 数据集合*/private List<T> list;public PageModel(List<T> list, int pageRecorders) {// 通过对象集,记录总数划分init(list, pageRecorders);}/** *//*** 初始化list,并告之该list每页的记录数* @param list 数据⼏个* @param pageRecorders ⼀页显⽰多少数据*/public void init(List<T> list, int pageRecorders) {this.pageRecorders = pageRecorders;this.list = list;totalRows = list.size();hasPreviousPage = false;if ((totalRows % pageRecorders) == 0) {totalPages = totalRows / pageRecorders;} else {totalPages = totalRows / pageRecorders + 1;}if (page >= totalPages) {hasNextPage = false;} else {hasNextPage = true;}if (totalRows < pageRecorders) {this.pageStartRow = 0;this.pageEndRow = totalRows;} else {this.pageStartRow = 0;this.pageEndRow = pageRecorders;}}// 判断要不要分页public boolean isNext() {return list.size() > 5;}public void setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage;}public String toString(int temp) {String str = Integer.toString(temp);return str;}public void description() {String description = "共有数据数:" + this.getTotalRows() + "共有页数: " + this.getTotalPages() +"当前页数为:" + this.getPage() +" 是否有前⼀页: " + this.isHasPreviousPage() +" 是否有下⼀页:" + this.isHasNextPage() +" 开始⾏数:" + this.getPageStartRow() +" 终⽌⾏数:" + this.getPageEndRow();System.out.println(description);}public List getNextPage() {page = page + 1;disposePage();System.out.println("⽤户凋⽤的是第" + page + "页");this.description();return getObjects(page);}/*** 处理分页*/private void disposePage() {if (page == 0) {page = 1;}if ((page - 1) > 0) {hasPreviousPage = true;} else {hasPreviousPage = false;}if (page >= totalPages) {hasNextPage = false;} else {hasNextPage = true;}}public List getPreviousPage() {page = page - 1;if ((page - 1) > 0) {hasPreviousPage = true;} else {hasPreviousPage = false;}if (page >= totalPages) {hasNextPage = false;} else {hasNextPage = true;}this.description();return getObjects(page);}/*** 获取第⼏页的内容** @param page 当前页⾯* @return*/public List<T> getObjects(int page) {if(page == 0){this.setPage(1);}else{this.setPage(page);}this.disposePage();if (page * pageRecorders < totalRows) {// 判断是否为最后⼀页pageEndRow = page * pageRecorders;pageStartRow = pageEndRow - pageRecorders;} else {pageEndRow = totalRows;pageStartRow = pageRecorders * (totalPages - 1); }List<T> objects = null;if (!list.isEmpty()) {objects = list.subList(pageStartRow, pageEndRow); }//this.description();return objects;}public List<T> getFistPage() {if (this.isNext()) {return list.subList(0, pageRecorders);} else {return list;}}public boolean isHasNextPage() {return hasNextPage;}public void setHasNextPage(boolean hasNextPage) {this.hasNextPage = hasNextPage;}public List getList() {return list;}public void setList(List list) {this.list = list;}public int getPage() {return page;}public void setPage(int page) {this.page = page;}public int getPageEndRow() {return pageEndRow;}public void setPageEndRow(int pageEndRow) {this.pageEndRow = pageEndRow;}public int getPageRecorders() {return pageRecorders;}public void setPageRecorders(int pageRecorders) { this.pageRecorders = pageRecorders;}public int getPageStartRow() {return pageStartRow;}public void setPageStartRow(int pageStartRow) {this.pageStartRow = pageStartRow;}public int getTotalPages() {return totalPages;}public void setTotalPages(int totalPages) {this.totalPages = totalPages;}public int getTotalRows() {return totalRows;}public void setTotalRows(int totalRows) {this.totalRows = totalRows;}public boolean isHasPreviousPage() {return hasPreviousPage;}} 测试类TestPagerModelimport java.util.ArrayList;import java.util.List;/*** @version 1.0* @author: fwjia*/public class TestPagerModel {public static void main(String args[]) {List<String> list = new ArrayList<String>();list.add("a");list.add("b");list.add("c");list.add("d");list.add("e");list.add("f");list.add("g");list.add("h");list.add("h");list.add("i");list.add("j");list.add("k");list.add("l");list.add("m");PageModel<String> pm = new PageModel(list, 5); List<String> sublist = pm.getObjects(2);for(int i = 0; i < sublist.size(); i++) {System.out.println(sublist.get(i));}}}。
java对list进⾏切⽚,截取指定段的list,list集合分页1public Result<?> queryPageList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,2 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {34//1.计算出需要跳过多少条数据(流切⽚的起始位置)5int startPosition = (pageNo-1)*pageSize;6 List<T> allCount = service.getAllCount();7 Stream<T> stream = allCount.stream().skip(startPosition).limit(pageSize);8 List<T> resultAccountList = stream.collect(Collectors.toList());9return Result.OK(resultAccountList);10 }刚接触到java 的流处理,发现⾮常强⼤,我这⾥因为service.getAllCount并不是⼀个单独的sql,⽽是多个sql整合⽽来,因此没办法在sql中写limit来分页1.说明⼀下⽅法第⼀步是获取流才能对list进⼀步操作,list.stream()则是获取流原本想着有没有直接的分页函数,设置起始和落点就⾏,但是看了⼀圈也没⼈⽤这种分页⽅式第⼆步是skip(Long n),顾名思义就是跳过n个位置,list总长度不⾜n的将返回空的流limit则是限制截取多少个数据,这样两个配合起来就实现了切⽚2.参考的博客。
(⼗⼀) 使⽤DataList 进⾏数据显⽰使⽤DataList 进⾏数据的展⽰时,⼀般⽤于多⾏多列数据的展⽰如:DataList 拥有强⼤的模版特性:ItemTemplate :⼀般项模版,该模版会应⽤多次AlternatingItemTemplate :交替项模版,该模版会应⽤多次FooterTemplate :尾模版,在项模版之后,只应⽤⼀次,不能使⽤Eval 绑定HeaderTemplate :头模版,在项模版之前,只应⽤⼀次,不能使⽤Eval 绑定SeparatorTemplate :分离模版SelectedItemTemplate :被选定模版EditItemTemplate :被编辑模版操作事件名称说明编辑EditCommand 由于DataList 不⽀持双向绑定,其更新与删除必须在对应事件中显式调⽤数据源控件的Delete 和Update ⽅法,并且所有的DeleteParameters 和UpdateParameters 参数必须指定,同时编辑、取消和更新按钮都需要在事件编程中设置属性并调⽤DataBind ⽅法重新绑定。
取消CancelCommand 更新UpdateCommand 删除DeleteCommand 选择SelectedIndexChanged ⽤于实现就地显⽰功能项命令ItemCommand ⾃定义操作的按钮事件项绑定ItemDataBound 数据项绑定DataList 控件与Repeater 控件使⽤起来⾮常类似,DataList 能够更加灵活的控制显⽰的列与⾏。
接下来我们通过具体的⽰例来演⽰如何通过DataList 控件进⾏列表展⽰的。
⽰例⼀:使⽤DataList 进⾏数据展⽰⼀、先准备⼀张照⽚信息表:⼆、新建Web页⾯,起名DataListDemo.aspx,然后拖拽上来⼀个DataList控件:三、创建头模板四、创建项模板(⾃定义的模板,展⽰数据⽤,定义成什么样⼦,就展现为什么样⼦,不会⽣成额外多余的标签):五、可以在属性中套⽤DataList⾃带的⼀些主题:六、写后台绑定代码,实现数据的绑定,在页⾯第⼀次加载时候开始绑定数据:展⽰效果如下:⽰例⼆、使⽤DataList进⾏数据删除⼀、在页⾯删除按钮上添加CommandName=”delete”、CommandArgument绑定的参数,为OnClientClick事件添加⼀个js代码,⽤来实现弹出确认框:⼆、由于CommandName为delete,所以会触发DataList的OnDeleteCommand事件,选择DataList的事件,新建⼀个DeleteCommand事件:三、在DeleteCommand事件中加⼊删除的代码:点击按钮实现删除在DataList控件中点击服务器控件,如果把控件的CommandName设置为delete,会触发DeleteCommand事件,我们可以根据需要设置不同的CommandName,从⽽实现不同的事件处理。
u-list分页用法
在进行u-list分页时,可以使用不同的方法来实现,这取决于具体的需求和设计。
以下是一些常见的u-list分页用法:
1.传统分页:
2.滚动分页:
3.无限滚动分页:
4.下拉刷新:
下拉刷新是指用户在页面顶部下拉时,会触发重新加载内容的操作。
在u-list分页中,可以将下拉刷新和传统分页结合使用,当用户下拉页面时,会加载最新的内容,并将其添加到页面的顶部。
5.分段加载:
在分段加载中,页面会首先加载第一段内容,当用户滚动至页面底部时,会加载下一段内容并添加到页面的末尾。
这种方式可以在页面加载时快速显示初始内容,并在用户需要时,逐步加载更多的内容。
6.加载更多按钮:
以上是一些常见的u-list分页用法,不同的用法可以根据具体的需求和设计来选择。
在选择使用哪种分页方式时,需要考虑用户体验、页面性能及交互复杂度等因素,并根据具体情况做出权衡决策。
thinkphp5数据库查询之paginate:同时获取记录总数和分页数据thinkphp5中要想同时获得查询记录的总数量以及分页的数据, 可以⽤paginate(), 真的⾮常⽅便!表结构:CREATE TABLE `t_users` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`email` varchar(128) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '登录账号',`passwd` varchar(128) COLLATE utf8mb4_bin NOT NULL DEFAULT '',`nickname` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '昵称',`company` varchar(256) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '公司',`contact` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '联系⼈',`address` varchar(256) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '详细地址',`city` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '城市',`country` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '国家',`province` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '省/州',`zip_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '邮政编码',`phone` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '电话',`token` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '登录唯⼀凭证, 登录时更新',`check` tinyint(1) DEFAULT '0' COMMENT '0-未通过, 1-通过',`check_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',`time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`id`),UNIQUE KEY `email` (`email`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='注册⽤户表';表数据截图:获取记录总数和分页数据:public function test(){$r = db(self::TABLE)->paginate(3, false);// $r = model(self::TABLE)->paginate(3, false);print_r($r);$data = ['total' => $r->total(), // 总记录数'cur' => $r->currentPage(), // 当前页码'size' => $r->listRows(), // 每页记录数'list' => $r->items() // 分页数据];print_r($data);}截图:最终运⾏结果:cmf\paginator\Bootstrap Object([simple:protected] =>[items:protected] => think\Collection Object([items:protected] => Array([0] => Array([id] => 1[email] => 1@[passwd] => e10adc3949ba59abbe56e057f20f883e[nickname] =>[company] =>[contact] =>[address] =>[city] =>[country] => United Kingdom[province] =>[zip_code] =>[phone] =>[token] => ae4e61fa4ec3b7fc144603e4ca8e1f83[check] => 1[check_time] => 2019-08-21 22:23:16[time] => 2019-08-19 10:25:18)[1] => Array([id] => 4[email] => 1121@[passwd] => e10adc3949ba59abbe56e057f20f883e [nickname] =>[company] =>[contact] =>[address] =>[city] =>[country] => ⽇本[province] =>[zip_code] =>[phone] =>[token] => f1267ace3614544c7eda97e8b831f5ac [check] => 1[check_time] =>[time] => 2019-08-19 12:32:25)[2] => Array([id] => 7[email] => 1112312@[passwd] => e10adc3949ba59abbe56e057f20f883e [nickname] =>[company] =>[contact] =>[address] =>[city] =>[country] => ⽇本[province] =>[zip_code] =>[phone] =>[token] => ae0ffcc37d1f6f564e6045892f04a5ea[check] => 0[check_time] =>[time] => 2019-08-19 16:43:13)))[currentPage:protected] => 1[lastPage:protected] => 2[total:protected] => 6[listRows:protected] => 3[hasMore:protected] => 1[options:protected] => Array([var_page] => page[path] => /admin/users/test[query] => Array()[fragment] =>[type] => \cmf\paginator\Bootstrap[list_rows] => 15))Array([total] => 6[cur] => 1[size] => 3[list] => Array([0] => Array([id] => 1[email] => 1@[passwd] => e10adc3949ba59abbe56e057f20f883e[nickname] =>[company] =>[contact] =>[address] =>[city] =>[country] => United Kingdom[province] =>[zip_code] =>[phone] =>[token] => ae4e61fa4ec3b7fc144603e4ca8e1f83[check] => 1[check_time] => 2019-08-21 22:23:16[time] => 2019-08-19 10:25:18)[1] => Array([id] => 4[email] => 1121@[passwd] => e10adc3949ba59abbe56e057f20f883e[nickname] =>[company] =>[contact] =>[address] =>[city] =>[country] => ⽇本[province] =>[zip_code] =>[phone] =>[token] => f1267ace3614544c7eda97e8b831f5ac[check] => 1[check_time] =>[time] => 2019-08-19 12:32:25)[2] => Array([id] => 7[email] => 1112312@[passwd] => e10adc3949ba59abbe56e057f20f883e[nickname] =>[company] =>[contact] =>[address] =>[city] =>[country] => ⽇本[province] =>[zip_code] =>[phone] =>[token] => ae0ffcc37d1f6f564e6045892f04a5ea[check] => 0[check_time] =>[time] => 2019-08-19 16:43:13)))===============================================另外, paginate中第3个参数⾥可以配置请求的页码, 即请求指定页数据, ⽰例如下: public function test(){$r = db(self::TABLE)->alias('a')->join('users_good b', 'b.uid = a.id')->field('uid, a.check,b.chinese,b.math')->paginate(3, false, ['page' => 2 // 指定请求的页码]);print_r($r);$data = ['total' => $r->total(), // 总记录数'cur' => $r->currentPage(), // 当前页码'size' => $r->listRows(), // 每页记录数'list' => $r->items() // 分页数据];print_r($data);}。
u-list分页用法
u-list分页是一种常用的分页方式,可以将大量数据分成多个页面展示,方便用户查看和操作。
以下是u-list分页的用法:
1. 在HTML中创建一个u-list元素,用于展示分页数据。
2. 在u-list元素中添加多个u-list-item元素,每个元素代表一页数据。
3. 在每个u-list-item元素中添加需要展示的数据,如文本、图片等。
4. 在页面底部添加一个u-pagination元素,用于展示分页导航。
5. 在u-pagination元素中添加多个u-pagination-item元素,每个元素代表一个分页按钮。
6. 使用JavaScript代码实现分页功能,当用户点击分页按钮时,切换u-list-item元素的显示,同时更新u-pagination-item元素的状态。
7. 可以根据需要自定义分页样式和功能,如添加搜索、排序等功能。
总之,u-list分页是一种简单易用的分页方式,可以提高用户体验和
数据展示效果。
datalist option用法datalist option用法什么是datalist option?datalist option是HTML5中datalist元素的子元素,用于定义datalist的选项。
datalist提供了一个下拉列表,用户可以从中选择一个选项。
基本用法<input type="text" list="datalist_id"><datalist id="datalist_id"><option value="选项1"><option value="选项2"><option value="选项3"><option value="选项4"></datalist>1.在输入框<input>中设置type="text",并通过list属性指定与之关联的datalist,使用datalist的id作为值。
2.在<datalist>中定义多个<option>元素作为选项。
用户在输入框中输入内容时,会显示datalist中的选项供用户选择。
自动完成datalist option还可以结合JavaScript来实现自动完成的功能。
通过监听输入框的输入事件,在输入时动态修改datalist的选项。
<input type="text" id="input_id"><datalist id="datalist_id"><option value="选项1"><option value="选项2"><option value="选项3"><option value="选项4"></datalist><script>const input = ("input_id");const datalist = ("datalist_id");("input", function() {const inputValue = ;// 清空datalist选项= "";// 根据输入值筛选选项const options = ["选项1", "选项2", "选项3", "选项4 "];const filteredOptions = (option => (inputValue));// 创建并添加新的选项(option => {const newOption = ("option");= option;(newOption);});});</script>用户在输入框中输入内容时,会根据用户的输入值动态显示datalist中匹配的选项。
WPFDataGrid的分页实现原理:其实分页功能的实现⼤家都清楚,⽆⾮就是把⼀个记录集通过运算来刷选⾥⾯对应页码的记录。
接来下我们再次添加新的代码1. <Grid>2. <DataGrid Name="dataGrid1" AutoGenerateColumns="False">3. <!--省略N个代码-->4. </DataGrid>5. <StackPanel Orientation="Horizontal">6. <TextBlock Text="转到" Margin="5"/>7. <TextBox Name="tbxPageNum" Text="" />8. <TextBlock Text="页" />9. <Button Content="GO" Click="btnGo_Click"/>10. <Button Name="btnUp" Content="上⼀页" VerticalAlignment="Center" Click="btnUp_Click"/>11. <Button Name="btnNext" Content="下⼀页" VerticalAlignment="Center" Click="btnNext_Click"/>12. <TextBlock Height="20">13. <TextBlock Text="【共" />14. <TextBlock Name="tbkTotal" Foreground="Red" />15. <TextBlock Text="页】" />16. <TextBlock Text="【当前" />17. <TextBlock Name="tbkCurrentsize" Foreground="Red" />18. <TextBlock Text="页】" />19. </TextBlock>20. </StackPanel>21. </Grid>⾸先我们先写个分页的⽅法,供上⾯这些事件调⽤后台代码1. //number表⽰每个页⾯显⽰的记录数 currentSize表⽰当前显⽰页数2.3. private void Binding(int number, int currentSize)4. {5. List<Information> infoList = new List<Information>();6. infoList = tbInfo.GetInformationList(); //获取数据源7. int count = infoList.Count; //获取记录总数8. int pageSize = 0; //pageSize表⽰总页数9. if (count % number == 0)10. {11. pageSize = count / number;12. }13. else14. {15. pageSize = count / number + 1;16. }17. tbkTotal.Text = pageSize.ToString();18.19. tbkCurrentsize.Text = currentSize.ToString();20. infoList = infoList.Take(number * currentSize).Skip(number * (currentSize - 1)).ToList(); //刷选第currentSize页要显⽰的记录集21. dataGrid1.ItemsSource = infoList; //重新绑定dataGrid122. }23.24.25.26. //分页⽅法写好了接下来就是响应下⼀页,上⼀页,和跳转页⾯的事件了27.28. //先定义⼀个常量29.30. const int Num=12; //表⽰每页显⽰12条记录31.32. //上⼀页事件33.34. private void btnUp_Click(object sender, RoutedEventArgs e)35. {36. int currentsize = int.Parse(tbkCurrentsize.Text); //获取当前页数37. if (currentsize > 1)38. {39. Binding(Num, currentsize - 1); //调⽤分页⽅法40. }41. }42.43.44. //下⼀页事件45. private void btnNext_Click(object sender, RoutedEventArgs e)46. {47. int total = int.Parse(tbkTotal.Text); //总页数48. int currentsize = int.Parse(tbkCurrentsize.Text); //当前页数49. if (currentsize < total)50. {51. Binding(Num, currentsize + 1); //调⽤分页⽅法52. }53. }54.55.56. //跳转事件57. private void btnGo_Click(object sender, RoutedEventArgs e)58. {59. int pageNum = int.Parse(tbxPageNum.Text);60. int total = int.Parse(tbkTotal.Text); //总页数61. if (pageNum >= 1 && pageNum <= total)62. {63. Binding(Num, pageNum); //调⽤分页⽅法64. }65. }66. 原⽂参考 /sanjiawan/article/details/6785394#。
html中datalist标签的用法(原创版)目录1.引言2.datalist 标签的定义和用途3.datalist 标签的属性4.datalist 标签的例子5.结论正文【引言】在 HTML 中,datalist 标签是一种用于创建下拉列表的元素。
它允许用户在表单中选择一个值,从而为用户提供一组预定义的选项。
本文将介绍 datalist 标签的用法。
【datalist 标签的定义和用途】datalist 标签是 HTML5 中引入的新元素,它用于创建下拉列表,以便在表单中选择一个值。
datalist 元素可以与 input 元素结合使用,以便在表单中提供一组预定义的选项。
这使得用户在填写表单时更容易选择一个值,从而提高了用户体验。
【datalist 标签的属性】datalist 标签有以下属性:1.id:为 datalist 元素定义一个唯一的标识符。
2.options:定义下拉列表中的选项。
这些选项可以是字符串数组、HTML 字符串或者 HTML 文档。
【datalist 标签的例子】以下是一个使用 datalist 标签的例子:```html<!DOCTYPE html><html><head><meta charset="utf-8"><title>datalist 标签示例</title></head><body><label for="country">选择国家:</label><input type="text" id="country" list="country-list"> <datalist id="country-list"><option value="中国">中国</option><option value="美国">美国</option><option value="日本">日本</option></datalist></body></html>```在这个例子中,我们创建了一个包含三个选项的下拉列表,用户可以在表单中选择一个国家。
dede datalist 用法dede datalist是一款强大的数据列表插件,广泛应用于各种网站后台数据展示。
下面我们将详细介绍dede datalist的用法及其功能特性。
一、安装与导入在安装dede datalist之前,请确保您的WordPress系统已升级到最新版本。
然后,通过WordPress后台的“插件”菜单,搜索“dede datalist”,找到插件并进行安装。
安装完成后,您需要在后台启用插件。
二、dede datalist基本用法dede datalist主要通过短代码[dede_datalist] 来调用。
在使用短代码之前,您需要在后台配置插件的相关选项。
主要包括:1.数据源:选择数据源类型,如文章、评论等。
2.分类:选择数据分类。
3.排序:设置排序方式,如最新、最旧、热门等。
4.显示数量:设置每页显示的数据条数。
5. 分页:开启或关闭分页功能。
配置完成后,您可以在文章、页面等地方使用短代码[dede_datalist]调用数据列表。
插件将自动根据配置选项生成相应的数据列表。
三、dede datalist高级功能1.筛选:dede datalist支持按照关键词、作者、发布时间等条件进行筛选,满足不同场景的需求。
2.排序:支持按照发布时间、点赞数、评论数等条件对数据进行排序。
3.列表样式:提供多种列表样式供选择,如表格、网格、列表等。
4.数据分页:支持无限滚动和分页显示,方便用户查看大量数据。
5.响应式布局:dede datalist支持响应式布局,适应各种设备尺寸。
6.兼容性:dede datalist充分考虑了兼容性,支持各种主流浏览器。
四、总结dede datalist是一款功能强大、易于使用的数据列表插件。
通过简单的短代码调用,即可实现各种数据列表的展示。
同时,插件还具备丰富的选项,满足不同场景的需求。
无论是个人博客,还是企业官网,dede datalist都能为您提供高效、便捷的数据展示解决方案。
源代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label7.Text = "1";///顺序不能颠倒
DL_messBind();
}
}
public void DL_messBind()
{
int curpage = Convert.ToInt32(this.Label7.Text);
PagedDataSource ps = new PagedDataSource();
ps.DataSource = DDOMessage.GetAllMess().Tables[0].DefaultView;
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 5; //显示的数量
ps.CurrentPageIndex = curpage - 1;//获取当前页码
LinkButton1.Enabled = true;
LinkButton2.Enabled = true;
LinkButton3.Enabled = true;
LinkButton4.Enabled = true;
if (curpage == 1)
{
LinkButton1.Enabled = false;
LinkButton2.Enabled = false;
}
if (curpage == ps.PageCount)
{
LinkButton3.Enabled = false;
LinkButton4.Enabled = false;
}
this.Label8.Text = Convert.ToString(ps.PageCount);
DL_mess.DataSource = ps;
DL_mess.DataKeyField = "id";
DL_mess.DataBind();
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
this.Label7.Text = "1";
DL_messBind();
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
this.Label7.Text = Convert.ToString(Convert.ToInt32(Label7.Text) - 1);
DL_messBind();
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
this.Label7.Text = Convert.ToString(Convert.ToInt32(Label7.Text) + 1);
DL_messBind();
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
this.Label7.Text = Label8.Text;
DL_messBind();
}