Tengo un Gridview, en donde la primera columna es un checkbox.
Luego de selsscionar los datos que quiero, presiono un boton y tengo que capturar la columna ID de las filas que seleccione con el checkbox.
Todo bien, hasta que llega a esta linea
Dim dato = GridView.Rows(GridView.SelectedIndex).Cells(2).Tex t
Alli sale un error ( el Gridview.SelectedIndex da -1)
(Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index)
Abajo coloco todo el codigo.
Esta es la grilla
Código:
Y este el el codigo VB de envento click del boton<asp:gridview id="GridView" autogeneratecolumns="false" runat="server" CellPadding="4" ForeColor="#333333" GridLines="Vertical" Width="1300px" Font-Size="Smaller" Height="28px"> <columns> <%-- <asp:buttonfield buttontype="Link" commandname="Add" text="Add"/>--%> <asp:TemplateField > <ItemTemplate> <asp:CheckBox ID="Add" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:boundfield datafield="Nombre" headertext="Tienda"> <ItemStyle Width="150px" /> </asp:boundfield> <asp:boundfield datafield="ID_Tienda" headertext="ID_Tienda" HeaderStyle-CssClass="Hide" ItemStyle-CssClass="Hide"> <HeaderStyle CssClass="Hide"></HeaderStyle> <ItemStyle Width="1px" /> </asp:boundfield> <asp:boundfield datafield="DireccionSunat" headertext="Direccion Sunat"> <ItemStyle Width="500px" /> </asp:boundfield> <asp:boundfield datafield="CodigoSunat" headertext="Codigo Sunat"> <ItemStyle Width="100px" /> </asp:boundfield> <asp:BoundField DataField="UsrValida" HeaderText="UsrValida" > <ItemStyle Width="150px" /></asp:BoundField> <asp:BoundField DataField="FechaValida" HeaderText="FechaValida" DataFormatString="{0:d}" > <ItemStyle Width="150px" /></asp:BoundField> <asp:BoundField DataField="Comentario" HeaderText="Comentario" > <ItemStyle Width="300px" /></asp:BoundField> <asp:BoundField DataField="FechaModifica" HeaderText="FechaModifica" DataFormatString="{0:d}" > <ItemStyle Width="150px" /></asp:BoundField> </columns> <AlternatingRowStyle BackColor="White" ForeColor="#A50014" /> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#A50014" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" Font-Size="Small" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" Font-Size="Small" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:gridview>
Código:
Espero me puedan ayudar!!! Protected Sub BtnEnvio_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnEnvio.Click For Each row As GridViewRow In GridView.Rows Dim checkbox As CheckBox = CType(row.FindControl("Add"), CheckBox) If checkbox.Checked Then Dim dato = GridView.Rows(GridView.SelectedIndex).Cells(2).Text End If Next row End sub