关于DataGrid等控件中的自动编号

原创 2004年12月30日 11:14:00

 

网上有很多人问关于DataGrid的自动编号问题,但在论坛中我已经回复过好几次,但还是不断有人问

序号
 内容
 
1
 Taye
 
2
 BOx
 
3
 Glass
 
4
 StarCraft
 

 

一、正序

A、AllowPaging=False情况下

 

<asp:DataGrid id="DataGrid1" runat="server">
    <Columns>
     <asp:TemplateColumn>
      <ItemTemplate>
       <%# Container.ItemIndex + 1%>
      </ItemTemplate>
     </asp:TemplateColumn>
    </Columns>
 </asp:DataGrid>
 


就可以实现

不过更有趣的方法是使用这个方法

 

 <asp:DataGrid id="DataGrid1" runat="server">
    <Columns>
     <asp:TemplateColumn>
      <ItemTemplate>
       <%# this.DataGrid1.Items.Count + 1%>
      </ItemTemplate>
     </asp:TemplateColumn>
    </Columns>
 </asp:DataGrid>
 

 

也许有些人会觉得很奇怪为什么Items.Count会这样,而不是出来全部总合..但如果你了解绑定的过程时就容易理解.
[从上面来看就是在ItemCreated事件中进行绑定所以得到的Items.Count刚好是当前的序号]

B、AllowPaging="True"下
如果你DataGrid支持分页则可以如下

 

<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">
    <Columns>
     <asp:TemplateColumn>
      <ItemTemplate>
       <%# this.DataGrid1.CurrentPageIndex * this.DataGrid1.PageSize + Container.ItemIndex + 1%>
      </ItemTemplate>
     </asp:TemplateColumn>
    </Columns>
</asp:DataGrid>
 

 

二、倒序的方法

序号
 内容
 
4
 Taye
 
3
 BOx
 
2
 Glass
 
1
 StarCraft
 

由上面可以知道使用
this.DataGrid1.Items.Count - Container.ItemIndex + 1方法是不可能实现的,得到值而且全会为1
分页的情况下更是一样.所以一开始我们就要取得数据源的行数

.cs
 
             private int rowscount = 0;

         protected int RowsCount

         {

              get{ return rowscount;}

              set{ this.rowscount = value; }

         }

    

         private void Page_Load(object sender, System.EventArgs e)

         {

              // 在此处放置用户代码以初始化页面

              if(!IsPostBack)

                   this.BindData();

         }

 

         private void BindData()

         {

              SqlConnection cn = new SqlConnection("server=(local);database=NorthWind;uid=sa;pwd=");

              string str=@"SELECT Employees.EmployeeID, Orders.EmployeeID

                                 FROM Employees INNER JOIN

                       Orders ON Employees.EmployeeID = Orders.EmployeeID ";

 

              SqlDataAdapter sqlda = new SqlDataAdapter(str,cn);

              DataSet ds = new DataSet();

 

              sqlda.Fill(ds);

 

              this.RowsCount = ds.Tables[0].Rows.Count;

 

              this.DataGrid1.DataSource = ds;

              this.DataGrid1.DataBind();

 

         }
 

 

 

.aspx
 
<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">

                            <Columns>

                                   <asp:TemplateColumn>

                                          <ItemTemplate>

                                                 <%# RowsCount - DataGrid1.CurrentPageIndex * DataGrid1.PageSize - Container.ItemIndex %>

                                          </ItemTemplate>

                                   </asp:TemplateColumn>

                            </Columns>

                     </asp:DataGrid>

 
 

 当然如果是不是分页的情况一下更容易实现了.

 

DataGrid控件用法详解

转自:http://www.vckbase.com/document/viewdoc/?id=1164 作者:万建华 下载源代码 写在前面   刚写这个题目,就觉得肩上...
  • banrixianxin
  • banrixianxin
  • 2014年05月16日 00:23
  • 4221

datagrid自定义分页控件

  • qq_31971935
  • qq_31971935
  • 2016年08月10日 17:32
  • 489

详解WPF 4 DataGrid控件的基本功能

详解WPF 4 DataGrid控件的基本功能 提到DataGrid 不管是网页还是应用程序开发都会频繁使用。通过它我们可以灵活的在行与列间显示各种数据。本篇将详细介绍WPF 4 中DataGrid...
  • jiangxinyu
  • jiangxinyu
  • 2013年03月04日 16:05
  • 4086

VC DataGrid控件使用总结

MS CDataGrid控件用法详解 本文示例源代码或素材下载 。DataGrid控件是VC方便地用来显示数据的一个极好的网格控件,我不否认网上还有期它不少优秀的网格控件,但我总喜欢使用微...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年04月01日 18:37
  • 1685

WPF DataGrid使用 自动显示行号、全选、三级联动、拖拽

1.DataGrid的使用自动显示行号(修复删除行时行号显示不正确) dgTool.LoadingRow += new EventHandlerDataGridRowEventArgs (dgTool...
  • lanshengsheng2012
  • lanshengsheng2012
  • 2013年10月24日 10:46
  • 6395

轻松搞定word中让人抓狂的自动编号

在word中使用自动编号时,如果一级编号是2,想让其后面的二级编号自动编号为2.1、2.2……,三级编号自动编号为2.1.1、2.1.2……;且在该一级编号调整为3时,后面的二级编号和三级编号的第一位...
  • sinat_20265495
  • sinat_20265495
  • 2016年06月03日 20:32
  • 3167

DataGrid控件介绍

DataGrid控件介绍 1. 引言 Rich UI中的DataGrid组件可以在表中显示一组行数据。本文将详细介绍DataGrid组件相关信息。 如果想要较好的理解DataGrid,你...
  • lcczzu
  • lcczzu
  • 2015年07月14日 11:37
  • 433

VB.net数据库编程中DataGrid控件的使用技巧

如何用同一个DataGrid显示不同的数据表;如何用DataGrid显示主表/明细表的内容;如何用DataGrid分页显示或编辑数据表的记录。这些技巧在开发数据库程序中很实用。 DataGrid是VB...
  • jxjxlc
  • jxjxlc
  • 2016年11月10日 11:25
  • 2182

java中自动生成编码,例如18位,20位等

/*** * * getCommonBh:(获得通用的编号:前缀(一般是单位的前N位+当前时间(自定义格式)+格式化的sequence值:00001)). * @au...
  • u011410254
  • u011410254
  • 2015年07月21日 20:27
  • 5751

解决EasyUI的datagrid控件显示日期问题

在做积分系统的时候,做的是后台管理系统,所以前段框架用的是EasyUI,使用datagrid的时候,后台返回来一个日期格式的数据,当json序列化后返回来的数据就变成了/Date(1419264000...
  • cd18333612683
  • cd18333612683
  • 2017年06月12日 20:16
  • 798
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于DataGrid等控件中的自动编号
举报原因:
原因补充:

(最多只允许输入30个字)