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


