位置: 编程技术 - 正文

GridView自定义分页的四种存储过程(gridview自定义排序)

编辑:rootadmin
1. 为什么不使用GridView的默认分页功能 首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何获得一个新页面,它只是请求绑定的数据源控件返回适合规定页面的行,分页最终是由数据源控件完成。当我们使用SqlDataSource或使用以上的代码处理分页时。每次这个页面被请求或者回发时,所有和这个SELECT语句匹配的记录都被读取并存储到一个内部的DataSet中,但只显示适合当前页面大小的记录数。也就是说有可能使用Select语句返回条记录,而每次回发只显示条记录。如果启用了SqlDataSource上的缓存,通过把EnableCaching设置为true,则情况会更好一些。在这种情况下,我们只须访问一次数据库服务器,整个数据集只加载一次,并在指定的期限内存储在ASP.NET缓存中。只要数据保持缓存状态,显示任何页面将无须再次访问数据库服务器。然而,可能有大量数据存储在内存中,换而言之,Web服务器的压力大大的增加了。因此,如果要使用SqlDataSource来获取较小的数据时,GridView内建的自动分页可能足够高效了,但对于大数据量来说是不合适的。 2. 分页的四种存储过程(分页+排序的版本请参考Blog里其他文章) 在大多数情况下我们使用存储过程来进行分页,今天有空总结了一下使用存储过程对GridView进行分页的4种写法(分别是使用Top关键字,临时表,临时表变量和SQL Server 新加的Row_Number()函数) 后续的文章中还将涉及GridView控件使用ObjectDataSource自定义分页 + 排序,Repeater控件自定义分页 + 排序,有兴趣的朋友可以参考。 3. 在GridView中的应用 [/code] using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class GridViewPaging : System.Web.UI.Page { //每页显示的最多记录的条数 private int pageSize = ; //当前页号 private int currentPageNumber; //显示数据的总条数 private static int rowCount; //总页数 private static int pageCount; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString); SqlCommand cmd = new SqlCommand("GetProductsCount", cn); cmd.CommandType = CommandType.StoredProcedure; cn.Open(); rowCount = (int)cmd.ExecuteScalar(); cn.Close(); pageCount = (rowCount - 1) / pageSize + 1; currentPageNumber = 1; ViewState["currentPageNumber"] = currentPageNumber; lbtnPrevious.Enabled = false; lbtnFirst.Enabled = false; for (int i = 1; i <= pageCount; i++) { dropPage.Items.Add(new ListItem(i.ToString(), i.ToString())); } dropPage.SelectedValue = dropPage.Items.FindByValue(currentPageNumber.ToString()).Value; SqlDataSource1.Select(DataSourceSelectArguments.Empty); } } protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e) { SqlDataSource1.SelectParameters["PageNumber"].DefaultValue = currentPageNumber.ToString(); SqlDataSource1.SelectParameters["PageSize"].DefaultValue = pageSize.ToString(); } protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e) { lblMessage.Text = "共找到" + rowCount + "条记录, 当前第" + currentPageNumber + "/" + pageCount + "页"; } protected void lbtnPage_Command(object sender, CommandEventArgs e) { switch (e.CommandName) { case "First": currentPageNumber = 1; break; case "Previous": currentPageNumber = (int)ViewState["currentPageNumber"] - 1 > 1 ? (int)ViewState["currentPageNumber"] - 1 : 1; break; case "Next": currentPageNumber = (int)ViewState["currentPageNumber"] + 1 < pageCount ? (int)ViewState["currentPageNumber"] + 1 : pageCount; break; case "Last": currentPageNumber = pageCount; break; } dropPage.SelectedValue = dropPage.Items.FindByValue(currentPageNumber.ToString()).Value; ViewState["currentPageNumber"] = currentPageNumber; SetButton(currentPageNumber); SqlDataSource1.Select(DataSourceSelectArguments.Empty); } private void SetButton(int currentPageNumber) { lbtnFirst.Enabled = currentPageNumber != 1; lbtnPrevious.Enabled = currentPageNumber != 1; lbtnNext.Enabled = currentPageNumber != pageCount; lbtnLast.Enabled = currentPageNumber != pageCount; } protected void dropPage_SelectedIndexChanged(object sender, EventArgs e) { currentPageNumber = int.Parse(dropPage.SelectedValue); ViewState["currentPageNumber"] = currentPageNumber; SetButton(currentPageNumber); SqlDataSource1.Select(DataSourceSelectArguments.Empty); } } [/code] 4.分页效果图:

推荐整理分享GridView自定义分页的四种存储过程(gridview自定义排序),希望有所帮助,仅作参考,欢迎阅读内容。

GridView自定义分页的四种存储过程(gridview自定义排序)

文章相关热门搜索词:gridview分页的实现,gridview控件实现分页,如何设置gridview的风格样式,gridviewcolumn,gridview编辑指定列,gridviewcolumn,如何设置gridview的风格样式,gridview控件实现分页,内容如对您有帮助,希望把文章链接给更多的朋友!

Godaddy 导入导出MSSQL数据库的实现步骤 如何导入数据库可以从限制文件中导入SQL共享服务器数据库。如果想把存放在其他地方的数据导入,需要先把其内容拷到限制文件中。(注:在导入数

得到自增列的下一个会插入的id declare@Table_namevarchar()set@Table_name='Pay_inputpay';Selectso.nameTable_name,--表名字sc.nameIden_Column_name,--自增字段名字ident_current(so.name)curr_value,--自增字段当前值ident_

几个简单的基本的sql语句 说明:几个简单的基本的sql语句选择:select*fromtable1where范围插入:insertintotable1(field1,field2)values(value1,value2)删除:deletefromtable1where范围更新:updatetable1set

标签: gridview自定义排序

本文链接地址:https://www.jiuchutong.com/biancheng/349794.html 转载请保留说明!

上一篇:MSSQL 数据库备份和还原的几种方法 图文教程(数据库备份sqlserver)

下一篇:几个简单的基本的sql语句(简单基是什么)

  • 增值税纳税申报表电子版在哪下载
  • 增值税小规模纳税人购进货物支付的增值税直接计入
  • 资源税的计税依据煤炭
  • 非员工私车公用怎么进行账务处理
  • 账账核对的基本内容
  • 包装运杂费结转生产成本会计分录
  • 机器维修费属于变动成本吗
  • 电子税务局申报的财务报表在哪里查询
  • 小型企业利润表
  • 开技术服务费发票怎么做账
  • 附加税退税申请书怎么写
  • 未开业零升报企业是否做年度汇算清缴申报
  • 电子商票贴现具备的条件
  • 购买理财产品现金流量处理怎么做?
  • 事业编制公考
  • 打款金额少于开票金额
  • 未入账成本
  • 小规模纳税人可以出口退税吗
  • 以股权转让名义转让土地使用权
  • 小规模纳税人增值税征收率为
  • 收到的支票背书怎么写
  • 分支机构企业所得税是否必须跟总公司分摊吗
  • 电脑隐藏软件图标快捷键
  • mac符号在哪里
  • win11怎么让任务栏不重叠
  • 自己给笔记本更换硬盘
  • 研发费用加计扣除75%还是100%
  • 购进商品发生溢余的核算
  • 企业新录用并签订
  • 记账凭证摘要是什么意思
  • 在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
  • php批量导入数据库
  • 企业汇算清缴中,A107070表中的数据是自动跳出来嘛
  • 为什么很多银行卡会被异地警方冻结
  • 增值税税控系统技术维护费怎么做账
  • thinkphp模糊查询
  • 人力资源预算包括哪些内容
  • 可以主营业务成本增加现金减少吗
  • 用vue做的企业项目
  • 建筑工程承包合同
  • 销售部门发生的商品维修费
  • 个体户定额3万需要申报吗
  • 医院发票丢失怎么补办
  • 取得的增值税普通发票丢了怎么办理
  • 个人独资企业进行委托管理要签订劳动合同
  • 电子发票和增值税发票有什么区别
  • 公司销售一批物品怎么做
  • 实收资本 增加
  • 城建税教育费附加什么时候交
  • 所得税费用结转分录
  • 应收票据背书支付是什么
  • 个人原因指什么
  • 独立核算和非独立核算增值税
  • 买一送一会计分录怎么写
  • 员工工资占公司收入
  • 填写增值税纳税申报怎么填写?
  • 根据企业
  • 冲红的发票抵扣联要放在凭证里吗
  • 电费发票应收电费怎么开
  • 注册公司可以代办吗法人需要到场吗?
  • linux几种安装方式
  • 哪款系统重装软件比较好
  • 没有vcd怎么放光盘
  • WIN10系统中断
  • mentohust配置
  • linux系统百科
  • centos 7.6安装教程
  • android7应用程序开发教程
  • Win10 Mobile build 10586.338安装/上手体验视频
  • css行与行之间的间距怎么调
  • bash脚本语言
  • vue中父组件向子组件传递数据
  • js闭包作用问题解决应用
  • Easyui form combobox省市区三级联动
  • 安卓的所有权
  • 使用JQuery实现简单的拼图网页
  • 岗位大练兵业务大比武简报
  • 船舶税由谁代征
  • 三证合一开票信息
  • 坡面台阶
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设