Como generar columna auto numérica en un GrirdView

Cuando tengas un escenario donde necesites crear una columna que te genere ID, números de serie o un consecutivo en un GridView, puedes recurrir a este artículo. En este post te explicaremos cómo generar id´s en una columna de un GridView.
Lo más sencillo para generar automáticamente números de serie en un GridView, es usar el Container.DataItemIndex en el siguiente ejemplo te muestro como usarlo:
<asp:TemplateField HeaderText="Serial No"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# (GridView1.PageSize * GridView1.PageIndex) + Container.DisplayIndex + 1 %>'> </asp:Label> </ItemTemplate> </asp:TemplateField>
El ejemplo completo es el siguiente, claro solo tienes que crear tu cadena de conección a la base de datos.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="AutoIDGrid_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellPadding="3" CellSpacing="1" DataSourceID="SqlDataSource1" Font-Names="Latha" GridLines="None" AllowPaging="True" PageSize="5"> <Columns> <asp:TemplateField HeaderText="Serial No"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# (GridView1.PageSize * GridView1.PageIndex) + Container.DisplayIndex + 1 %>'> </asp:Label> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="PostTitle" HeaderText="PostTitle" SortExpression="PostTitle" /> <asp:BoundField DataField="PostDate" HeaderText="PostDate" SortExpression="PostDate" /> <asp:BoundField DataField="Clave" HeaderText="Clave" SortExpression="Clave" /> </Columns> <FooterStyle BackColor="#C6C3C6" ForeColor="Black" /> <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" /> <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" /> <RowStyle BackColor="#DEDFDE" ForeColor="Black" /> <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#F1F1F1" /> <SortedAscendingHeaderStyle BackColor="#594B9C" /> <SortedDescendingCellStyle BackColor="#CAC9C9" /> <SortedDescendingHeaderStyle BackColor="#33276A" /> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Nombre de la conección a DB%>" SelectCommand="SELECT * FROM [Nombre de la Tabla]"></asp:SqlDataSource> </div> </form> </body> </html>
Espero que este ejemplo te sea de utilidad y si tienes comentarios escríbenos, estaremos felices de responderte.
Saludos y gracias por leernos.