Hola buenas tardes, soy nueva en .net espero me puedan ayudar.
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:
<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>
Y este el el codigo VB de envento click del boton
Código:
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
Espero me puedan ayudar!!!