在GridView加入一序号列
在GridView加入一序号列
这里提供几个简单好用的方法

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

代码如下:
- //获得数据源
- 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>
在GridView加入一序号列
在GridView中添一序号列可以通过添加模板列,和Container提供的DataItemIndex属性来方便实现。如下所示
- <asp:TemplateField HeaderText="序号">
- <ItemTemplate>
- <%# Container.DataItemIndex+1 %>
- </ItemTemplate>
- </asp:TemplateField>
也可以通过以下代码实现对分页的支持。
- <asp:TemplateField HeaderText="序号">
- <ItemTemplate>
- <%# this.GridView1.PageIndex * this.GridView1.PageSize + Container.DataItemIndex + 1%>
- </ItemTemplate>
- </asp:TemplateField>
浙公网安备 33010602011771号