Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/02/2013, 11:15
Murallitz
 
Fecha de Ingreso: diciembre-2001
Ubicación: Peru
Mensajes: 376
Antigüedad: 23 años, 1 mes
Puntos: 0
Error con Gridview

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!!!