[GridView控件]自定义分页

简介:
前些天我写了关于 <<在存储过程中实现分页>>和<<GridView控件事件详解 >>   ,后来又有一些人问我怎样在GridView中应用这个东东!其实很简单,主要是怎么保存当前页面的页码PageIndex问题,不过把这个解决了什么都好办了.因为在分页过程中:PageSize是一定的,我们可以用一个属性来表示.保存PageIndex好多中方法,而且数据不是很庞大,基本不会好太多的资源.还是一句老话,话再多都没有例子直观.

  在这里我们将用一个隐藏字段来保存这个PageIndex,即当前页码.当点击上一页时,将它的值减一,知道为0,要注意的一点这里的第一页页码是0而不是1.下面看看代码,然后我们再分析分析!
 1 < asp:GridView  ID ="NewsGrid"  runat ="server"  AutoGenerateColumns ="False"  AllowPaging ="false"  Width ="100%" >
 2              < Columns >
 3                  < asp:BoundField  DataField ="NewsId"  HeaderText ="新闻ID" />
 4                  < asp:HyperLinkField  DataNavigateUrlFields ="NewsId"  DataNavigateUrlFormatString ="~/Details.aspx?ID={0}"
 5                     DataTextField ="Title"  HeaderText ="新闻标题"   ItemStyle-Width ="70%" />
 6                  < asp:BoundField  DataField ="PostTime"  HeaderText ="发布时间" />
 7                  < asp:CommandField  HeaderText ="新闻管理"  ShowCancelButton ="False"  ShowDeleteButton ="True"
 8                     ShowEditButton ="True" />
 9              </ Columns >
10          </ asp:GridView >
11          < div  style =" height:16px; padding-top:5px; margin-right:30px; float:right" >
12          < asp:HiddenField  ID ="CurrentPage"  runat ="server"  Value ="0" />
13          < asp:LinkButton  ID ="First"  runat ="server"  CommandArgument ="first"  OnClick ="PagerButton_Click" > 首 页 </ asp:LinkButton >
14          < asp:LinkButton  ID ="Prev"  runat ="server"  CommandArgument ="prev"  OnClick ="PagerButton_Click" > 上一页 </ asp:LinkButton >
15          < asp:LinkButton  ID ="Next"  runat ="server"  CommandArgument ="next"  OnClick ="PagerButton_Click" > 下一页 </ asp:LinkButton >
16          < asp:LinkButton  ID ="Last"  runat ="server"  CommandArgument ="last"  OnClick ="PagerButton_Click" > 尾 页 </ asp:LinkButton >
17          </ div >
  CS文件中的代码:
 1          protected   void  PagerButton_Click( object  sender, EventArgs e)
 2          {
 3            int pageIndx = Convert.ToInt32(CurrentPage.Value);
 4            int totals = NewsManager.GetNews(0, pageSize).TotalRecords;
 5            int pages = (totals % pageSize) == 0 ? (totals / pageSize) : (totals / pageSize + 1);
 6            string arg = ((LinkButton)sender).CommandArgument.ToString().ToLower();
 7            switch (arg)
 8            {
 9                case "prev":
10                    if (pageIndx > 0)
11                    {
12                        pageIndx -= 1;
13                    }

14                    break;
15                case "next":
16                    if (pageIndx < pages - 1)
17                    {
18                        pageIndx += 1;
19                    }

20                    break;
21                case "last":
22                    pageIndx = pages - 1;
23                    break;
24                default:
25                    pageIndx = 0;
26                    break;
27            }

28            CurrentPage.Value = pageIndx.ToString();
29            NewsGrid.DataSource = NewsManager.GetNews(pageIndx , pageSize).Entities;
30            NewsGrid.DataBind();
31        }
  

  是不是很简单啊,看了代码就都懂了,关于用按钮传参数在这里就不多说了,还有一个就是Entities属性,在<<应用实体类EntitySet实现类似的范型功能 >>这篇文章中可以找到!


本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html,如需转载请自行联系原作者

相关文章
|
存储 安全 Go
探索Go语言的并发模型:Goroutine与Channel
在Go语言的多核处理器时代,传统并发模型已无法满足高效、低延迟的需求。本文深入探讨Go语言的并发处理机制,包括Goroutine的轻量级线程模型和Channel的通信机制,揭示它们如何共同构建出高效、简洁的并发程序。
四大核心函数式接口
四大核心函数式接口
169 0
|
关系型数据库 MySQL 数据库
Docker Dockerfile 使用方法
当使用Docker构建容器化应用程序时,Dockerfile是一个用于定义容器镜像的文本文件。它包含了一系列指令,告诉Docker如何从基础镜像(通常是官方或自定义的操作系统镜像)构建出最终的镜像,以及如何配置容器中的环境、文件和应用程序。 Dockerfile 的编写是构建容器的基础,它允许您定义容器的构建步骤、环境和配置。通过合理使用各种指令,您可以构建出一个满足应用程序需求的定制化镜像,从而实现应用的容器化部署。
194 1
|
机器学习/深度学习 人工智能 Shell
指定GPU运行和训练python程序 、深度学习单卡、多卡 训练GPU设置【一文读懂】
指定GPU运行 python程序、玩转深度学习、查看 CPU 内存大小
3824 0
|
27天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
36051 142
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
9天前
|
人工智能 自然语言处理 监控
OpenClaw skills重构量化交易逻辑:部署+AI全自动炒股指南(2026终极版)
2026年,AI Agent领域最震撼的突破来自OpenClaw(原Clawdbot)——这个能自主规划、执行任务的智能体,用50美元启动资金创造了48小时滚雪球至2980美元的奇迹,收益率高达5860%。其核心逻辑堪称教科书级:每10分钟扫描Polymarket近千个预测市场,借助Claude API深度推理,交叉验证NOAA天气数据、体育伤病报告、加密货币链上情绪等多维度信息,捕捉8%以上的定价偏差,再通过凯利准则将单仓位严格控制在总资金6%以内,实现低风险高频套利。
4087 30
|
22天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
7976 22
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
21天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
5395 12