给DataGrid添加自动增长的序列号

这里提供几个简单好用的方法

原理:给数据源添加一个序列

代码如下:
//获得数据源
   mySelectCommand = "select * from table" ;

   SqlDataAdapter myCommand 
= new SqlDataAdapter(mySelectCommand,myConnection);

   DataTable dt 
= new DataTable();
   myCommand.Fill(dt);    
//将数据库获得的结果集付给dt,以进一步操作
//给dt加序列
   dt.Columns.Add("index",typeof(int));//加序列
   int index;
   
for( index = 0; index < dt.Rows.Count; index ++)
   
{
    dt.Rows[index][
"index"= index+1//加序号
   }

//绑定数据源
   myDataGrid.DataSource = dt.DefaultView ;
   myDataGrid.DataBind();


以上从数据源的角度来解决这个问题。
其实从DataGrid本身就可以很好地解决这个问题。比起上面的方法自然好很多。

原理:
1。利用该DataGrid的Container.ItemIndex 


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

这种方法再简单不过了,不过无法应用在分页的情况下。

2。利用DataGrid自身加载过程中.Items.Count的属性来实现


 
<asp:DataGrid id="DataGrid1" runat="server">
    
<Columns>
     
<asp:TemplateColumn>
      
<ItemTemplate>
       
<%this.DataGrid1.Items.Count + 1%>
      
</ItemTemplate>
     
</asp:TemplateColumn>
    
</Columns>
 
</asp: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>
原文地址:https://www.cnblogs.com/fuchifeng/p/730763.html