在GridView加入一序号列

在GridView加入一序号列

 

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

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

代码如下:

  1. //获得数据源
  2.    mySelectCommand = "select * from table" ;
  3.    SqlDataAdapter myCommand = new SqlDataAdapter(mySelectCommand,myConnection);
  4.    DataTable dt = new DataTable();
  5.    myCommand.Fill(dt);    //将数据库获得的结果集付给dt,以进一步操作
  6. //给dt加序列
  7.    dt.Columns.Add("index",typeof(int));//加序列
  8.    int index;
  9.    for( index = 0; index < dt.Rows.Count; index ++)
  10.    {
  11.     dt.Rows[index]["index"] = index+1; //加序号
  12.    }
  13. //绑定数据源
  14.    myDataGrid.DataSource = dt.DefaultView ;
  15.    myDataGrid.DataBind();

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

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

  1. <asp:DataGrid id="DataGrid1" runat="server">
  2.     <Columns>
  3.      <asp:TemplateColumn>
  4.       <ItemTemplate>
  5.        <%# Container.ItemIndex + 1%>
  6.       </ItemTemplate>
  7.      </asp:TemplateColumn>
  8.     </Columns>
  9.  </asp:DataGrid>

 

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

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

  1.  <asp:DataGrid id="DataGrid1" runat="server">
  2.     <Columns>
  3.      <asp:TemplateColumn>
  4.       <ItemTemplate>
  5.        <%# this.DataGrid1.Items.Count + 1%>
  6.       </ItemTemplate>
  7.      </asp:TemplateColumn>
  8.     </Columns>
  9.  </asp:DataGrid>

分页情况下,代码如下:

  1. asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">
  2.     <Columns>
  3.      <asp:TemplateColumn>
  4.       <ItemTemplate>
  5.        <%# this.DataGrid1.CurrentPageIndex * this.DataGrid1.PageSize + Container.ItemIndex + 1%>
  6.       </ItemTemplate>
  7.      </asp:TemplateColumn>
  8.     </Columns>
  9. </asp:DataGrid>


 

在GridView加入一序号列

 

在GridView中添一序号列可以通过添加模板列,和Container提供的DataItemIndex属性来方便实现。如下所示

  1. <asp:TemplateField HeaderText="序号">
  2.    <ItemTemplate>
  3.        <%# Container.DataItemIndex+1 %>  
  4.    </ItemTemplate>
  5. </asp:TemplateField> 
 也可以通过以下代码实现对分页的支持。
  1. <asp:TemplateField HeaderText="序号"
  2. <ItemTemplate> 
  3. <%# this.GridView1.PageIndex  * this.GridView1.PageSize + Container.DataItemIndex + 1%> 
  4. </ItemTemplate> 
  5. </asp:TemplateField> 

posted on 2009-02-24 23:30  一直走这条路  阅读(237)  评论(0)    收藏  举报

导航