gridview实现分页

前台代码:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
            AutoGenerateColumns="False" DataKeyNames="ScoreID"
            DataSourceID="SqlDataSource1" onpageindexchanging="GridView1_PageIndexChanging" 
            Width="100%" EmptyDataText="没有数据记录!"
            BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px"
            CellPadding="3" GridLines="Horizontal">
            <AlternatingRowStyle BackColor="#F7F7F7" />
            <Columns>
                <asp:BoundField DataField="ScoreID" HeaderText="成绩编号" ReadOnly="True"
                    SortExpression="ScoreID" />
                <asp:BoundField DataField="CourseID" HeaderText="课程编号"
                    SortExpression="CourseID" />
                <asp:BoundField DataField="StuScore" HeaderText="学生成绩"
                    SortExpression="StuScore" />
                <asp:BoundField DataField="StuID" HeaderText="学生编号" SortExpression="StuID" />
            </Columns>
            <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
            <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
            <PagerTemplate>
                当前第:
               <%-- //((GridView)Container.NamingContainer)就是为了得到当前的控件--%>
                <asp:Label ID="LabelCurrentPage" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageIndex + 1 %>"></asp:Label>
                页/共:
               <%-- //得到分页页面的总数--%>
                <asp:Label ID="LabelPageCount" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageCount %>"></asp:Label>
                页
                 <%--//如果该分页是首分页,那么该连接就不会显示了.同时对应了自带识别的命令参数CommandArgument--%>
                <asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"
                    Visible='<%#((GridView)Container.NamingContainer).PageIndex != 0 %>'>首页</asp:LinkButton>
                <asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev"
                    CommandName="Page" Visible='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'>上一页</asp:LinkButton>
               <%--//如果该分页是尾页,那么该连接就不会显示了--%>
                <asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"
                    Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>下一页</asp:LinkButton>
                <asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"
                    Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>尾页</asp:LinkButton>
                转到第
                <asp:TextBox ID="txtNewPageIndex" runat="server" Width="20px" Text='<%# ((GridView)Container.Parent.Parent).PageIndex + 1 %>' />页
                <%--//这里将CommandArgument即使点击该按钮e.newIndex 值为3 --%>
                <asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="-2"
                    CommandName="Page" Text="GO" />
            </PagerTemplate>
            <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
            <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
            <SortedAscendingCellStyle BackColor="#F4F4FD" />
            <SortedAscendingHeaderStyle BackColor="#5A4C9D" />
            <SortedDescendingCellStyle BackColor="#D8D8F0" />
            <SortedDescendingHeaderStyle BackColor="#3E3277" />
        </asp:GridView>

 

后台代码:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)        

{            

GridView theGrid = sender as GridView;            

int newPageIndex = 0;            

if (e.NewPageIndex == -3)            

{                

//点击了Go按钮                

TextBox txtNewPageIndex = null;                

//GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow                

GridViewRow pagerRow = theGrid.BottomPagerRow;                

if (pagerRow != null)                

{                    

//得到text控件                    

txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex") as TextBox;                

}                

if (txtNewPageIndex != null)                

{                    

//得到索引                    

newPageIndex = int.Parse(txtNewPageIndex.Text) - 1;                

}            

}            

else            

{                

//点击了其他的按钮                

newPageIndex = e.NewPageIndex;            

}            

//防止新索引溢出            

newPageIndex = newPageIndex < 0 ? 0 : newPageIndex;            

newPageIndex = newPageIndex >= theGrid.PageCount ? theGrid.PageCount - 1 : newPageIndex;            

//得到新的值            

theGrid.PageIndex = newPageIndex;            

//重新绑定            

GridView1.DataBind();

        }

转载于:https://www.cnblogs.com/JCH344/p/6029201.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql年月日24小时制_24小时制的「无码」真人秀,令人叫绝

几年前&#xff0c;我们总说互联网给世界带来了巨大的变化。到了现在&#xff0c;没想到自媒体的发展居然也能改变生活。但大家知道吗&#xff0c;其实早在20年前&#xff0c;美国那边就曾因“直播”掀起过不小的风浪——还是尺度挺大的那种。以至于毒师看过以后&#xff0c;整…

HangFire循环作业中作业因执行时间太长未完成新作业开启导致重复数据的问题...

背景HangFire有个很奇怪的现象&#xff0c;就是即使你设置的循环作业是一天一次&#xff0c;但是每次作业执行很长时间&#xff0c;我们假设是1小时&#xff0c;那么差不多在开始执行之后的30分钟之后&#xff0c;如果还在执行job,系统就会自动帮你重新开启了新的job执行。也就…

virtual多态 你不知道的事情

<1>如果父子类虚函数都有默认参数&#xff0c;这种情况下根据指针类型来调用对应函数<2>构造过程中&#xff0c;虚表还没有建立&#xff0c;此时在构造或析构函数中调用虚函数为静态调用<3>const类型函数和非const类型函数不构成覆盖(多态)<4>返回类型…

linux之查看文件大小、文件夹的大小和分区磁盘速度

1 查看文件大小 查看文件大小的命令 ls -l filename 比如: 注意这个 1243870 是 单位是B 2 查看文件夹的大小 查看文件夹的大小,也就是查看文件夹下所有文件的大小总和 先进入这个目录: cd FoldeName 命令如下: du -sh 3 查看分区磁盘速度 命令如下:

用户和组管理命令

回顾&#xff1a;bash globing IO重定向及管道glob通配符&#xff1a; *,?,[],[^]IO重定向&#xff1a; > >>2> 2>>&> &>>>/PATH/TO/SOMEFILE 2>&1 //&1表示引用前面的路径<…

各个版本spring的jar包以及源码下载地址

各个版本spring的jar包以及源码下载地址&#xff0c;目前最高版本到spring4.1.2&#xff0c;留存备用&#xff1a; http://maven.springframework.org/release/org/springframework/spring/ 转载于:https://www.cnblogs.com/elgin-seth/p/5293785.html

python基本随机数生成函数有_Python中生成随机数的常用方法

注意&#xff1a;random模块中的方法是不能直接访问的&#xff0c;需要导入 random 模块&#xff0c;然后通过 random 静态对象调用方法。random.random()random()方法返回随机生成的一个实数(浮点数)&#xff0c;它在[0,1)范围内。原型为random.random()random() 方法的语法格…

再谈“开源软件供应链安全”

| 作者&#xff1a;庄表伟| 编辑&#xff1a;刘雪洁| 设计&#xff1a;周颖| 责编&#xff1a;王玥敏缘起之前写过一篇文章《我所理解的开源软件供应链安全》&#xff0c;当时的情况&#xff0c;还没有出现一些值得探讨的&#xff0c;堪称紧迫的热点事件&#xff0c;所以我也仅…

python 测试框架

2019独角兽企业重金招聘Python工程师标准>>> # -*- encodeing:utf-8 -*- import unittest class WidgetTestCase(unittest.TestCase): def setUp(self): self.size 4 def tearDown(self): self.size 0 def testSize(self): self.assertEqual(self.size, 4) def su…

从抛硬币试验看随机游走定义的基本概念错误

全世界只有3.14 % 的人关注了爆炸吧知识随机游走&#xff08;Random Walk&#xff09;是《随机过程》教科书中用于描述动态随机现象的一种基本随机过程&#xff0c;许多重要的随机过程都可由它派生出来&#xff0c;其理论不仅在随机过程中占有相当重要的地位&#xff0c;而且也…

正则表达式学习手册

效果图<ignore_js_op style"word-wrap: break-word;">详细说明&#xff1a;http://java.662p.com/thread-3932-1-1.html转载于:https://www.cnblogs.com/huasili/p/4152584.html

excel下划线转驼峰公式

最近为了省事&#xff0c;决定从excel将表结构生成jquery.datatable的json对象结构&#xff0c;其中要把下划线转驼峰&#xff0c;如下&#xff1a; LEFT(C251,1)&MID(SUBSTITUTE(PROPER(C251),"_",""),2,100)

NSCoding和NSCopy

为什么80%的码农都做不了架构师&#xff1f;>>> 很多时候我们都需要将对象序列化&#xff0c;比如将一个对象存入到NSUserDefault 里面去的时候&#xff0c;由于NSUserDefault支持存入的类型有限制&#xff0c;所以很多时候我们需要将NSObject类型的对象转换成NSDa…

如何获取 Process.Start 打开进程的输出结果?

咨询区 stighy我想用 C# 通过控制台开启一个外部程序&#xff0c;理论上我就可以让程序和这个外部程序实现交互&#xff0c;但现在我遇到了两个问题。如何获取控制台上的输出呢&#xff1f;我想将结果写到我的 textbox 上。如何获取数值型的值让我可以展示进度条。回答区 Ferru…

如何判断对象是不是出轨了?

1 教官让学生表演才艺&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 人类幼崽的想象力能有多丰富&#xff1f;&#xff08;素材来源豆瓣&#xff0c;侵删&#xff09;▼3 来自医生的建议&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 这个手机壳很不…

MVC-控制器向View传值的三种方法

1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResult Index() { DateTime date DateTime.Now; return View(date); } 然后我们在视图中使用Razor的Model关键字来访问这个对象 { ViewBag.Title "Index"; } <h2>Index</h2&g…

Android之内核学习笔记

0、Android系统启动 《Android系统启动流程 -- bootloader》 《The Android boot process from power on》 《Android 启动过程介绍》 《Android培训班(86)内核运行之前的引导程序》 这是一系列文章 《Android 分区挂载》 1、init 《深入理解android 卷1》 第3章 深入理解…

能源项目xml文件 -- app-context.xml

<?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context"http://www.springframework.org/schema/c…