ASP.NET 为GridView添加序号列,且支持分页连续累计显示

简介:

 为GridView添加序号列,且支持分页连续累计显示,废话不多说,直接上代码:

复制代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
            AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="id" 
            DataSourceID="SqlDataSource1" Width="100%" PageSize="5">
            <Columns>
                <asp:TemplateField HeaderText="序号">
                    <ItemTemplate>
                        <asp:Literal ID="Literal1" runat="server"   Text='<%# (Container.DataItemIndex+1) %>'></asp:Literal>
                    </ItemTemplate> 
                    <ItemStyle BackColor="#FFFFCC" Font-Bold="True" ForeColor="#FF3300" 
                        Width="80px" />
                </asp:TemplateField>
                <asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" 
                    SortExpression="id" />
                <asp:BoundField DataField="plateno" HeaderText="plateno" 
                    SortExpression="plateno" />
                <asp:BoundField DataField="chassisno" HeaderText="chassisno" 
                    SortExpression="chassisno" />
                <asp:BoundField DataField="brand" HeaderText="brand" SortExpression="brand" />
                <asp:BoundField DataField="model" HeaderText="model" SortExpression="model" />
                <asp:BoundField DataField="owner" HeaderText="owner" SortExpression="owner" />
                <asp:BoundField DataField="telno" HeaderText="telno" SortExpression="telno" />
                <asp:BoundField DataField="regdate" HeaderText="regdate" 
                    SortExpression="regdate" />
                <asp:BoundField DataField="insurancecorp" HeaderText="insurancecorp" 
                    SortExpression="insurancecorp" />
                <asp:BoundField DataField="insureddate" HeaderText="insureddate" 
                    SortExpression="insureddate" />
                <asp:BoundField DataField="customertype" HeaderText="customertype" 
                    SortExpression="customertype" />
                <asp:BoundField DataField="renewalby" HeaderText="renewalby" 
                    SortExpression="renewalby" />
                <asp:BoundField DataField="csxcost" HeaderText="csxcost" 
                    SortExpression="csxcost" />
                <asp:BoundField DataField="szxcost" HeaderText="szxcost" 
                    SortExpression="szxcost" />
                <asp:BoundField DataField="sjxcost" HeaderText="sjxcost" 
                    SortExpression="sjxcost" />
                <asp:BoundField DataField="ckxcost" HeaderText="ckxcost" 
                    SortExpression="ckxcost" />
                <asp:BoundField DataField="dqxcost" HeaderText="dqxcost" 
                    SortExpression="dqxcost" />
                <asp:BoundField DataField="blxcost" HeaderText="blxcost" 
                    SortExpression="blxcost" />
                <asp:BoundField DataField="bjmpxcost" HeaderText="bjmpxcost" 
                    SortExpression="bjmpxcost" />
                <asp:BoundField DataField="otherxcost" HeaderText="otherxcost" 
                    SortExpression="otherxcost" />
                <asp:BoundField DataField="receivedsyxcost" HeaderText="receivedsyxcost" 
                    SortExpression="receivedsyxcost" />
                <asp:BoundField DataField="receivedjqxcost" HeaderText="receivedjqxcost" 
                    SortExpression="receivedjqxcost" />
                <asp:BoundField DataField="year" HeaderText="year" SortExpression="year" />
                <asp:BoundField DataField="month" HeaderText="month" SortExpression="month" />
                <asp:BoundField DataField="orgcode" HeaderText="orgcode" 
                    SortExpression="orgcode" />
                <asp:BoundField DataField="attr1" HeaderText="attr1" SortExpression="attr1" />
                <asp:BoundField DataField="attr2" HeaderText="attr2" SortExpression="attr2" />
                <asp:BoundField DataField="attr3" HeaderText="attr3" SortExpression="attr3" />
                <asp:BoundField DataField="importby" HeaderText="importby" 
                    SortExpression="importby" />
                <asp:BoundField DataField="importbyid" HeaderText="importbyid" 
                    SortExpression="importbyid" />
                <asp:BoundField DataField="importdatetime" HeaderText="importdatetime" 
                    SortExpression="importdatetime" />
            </Columns>
        </asp:GridView>
    
    </div>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ePFEDPConnectionString %>" 
        SelectCommand="SELECT * FROM [T_RITargetCustomerInfo]"></asp:SqlDataSource>
    </form>
</body>
</html>
复制代码

简要说明一下,由于我这里是作演示,所以我直接采用数据源SqlDataSource,大家仁者见仁,智者见智吧,实现自动生成序号的方法很多,最常见的是通过添加GridView1_RowDataBound方法,然后在里面依据实际情况计算序号,我这人希望能越简单且越好用就最好了,所以我采用了上面的方法,核心代码是:(Container.DataItemIndex+1),其中Container.DataItemIndex表示当前行索引,由于索引是从0开始,所以加上1就OK了,这样整个表就有序号了,而且在分页下也是连续性的,不会出现每页从1开始的情况。

 效果如下:

第一页序号

另外需要说明的是,如果大家不是采用数据源控件,而是自己手动去绑定数据源的情况,那就不能简单按照方面的方法,原因是Container.DataItemIndex在手动绑定数据源时,会索引并不会记住,每次绑定均会重新从0开始,所以这时候我们需要按照当前的页码来进行计算,代码也很简单,如下:

 

复制代码
<asp:TemplateField HeaderText="序号">
                    <ItemTemplate>
                        <asp:Literal ID="Literal1" runat="server"   Text='<%# ((GridView1.PageSize * GridView1.PageIndex) + Container.DataItemIndex +1) %>'></asp:Literal>
                    </ItemTemplate> 
                    <ItemStyle BackColor="#FFFFCC" Font-Bold="True" ForeColor="#FF3300" 
                        Width="80px" />
                </asp:TemplateField>
复制代码

 

 

更多IT相关的文章,欢迎光临我的个人网站:http://www.zuowenjun.cn/

 

本文转自 梦在旅途 博客园博客,原文链接:http://www.cnblogs.com/zuowj/p/4081078.html  ,如需转载请自行联系原作者

相关文章
|
4天前
|
开发框架 JavaScript .NET
asp.net中条件查询+分页
asp.net中条件查询+分页
19 1
|
4天前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
36 0
|
4天前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
38 0
|
SQL 开发框架 .NET
在ASP.NET中使用ListView控件对数据进行显示、分页和排序
在ASP.NET中使用ListView控件对数据进行显示、分页和排序
在ASP.NET中使用ListView控件对数据进行显示、分页和排序
|
开发框架 .NET 数据库连接
在ASP.NET中实现选中、编辑和删除GridView数据项
在ASP.NET中实现选中、编辑和删除GridView数据项
在ASP.NET中实现选中、编辑和删除GridView数据项
|
4天前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
48 0
|
4天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
23 0
|
4天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
32 0
|
4天前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
122 5
|
9月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
126 0