Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2013, 02:37
taboacar
 
Fecha de Ingreso: octubre-2012
Ubicación: Pozuelo de Alarcón
Mensajes: 67
Antigüedad: 11 años, 6 meses
Puntos: 1
Recoger multiples filas mediante checkbox

Buenos días,

Tengo un problema a la hora de recoger y validar los datos seleccionados de un gridview mediante checkboxes.

Lo que quiero hacer es seleccionar varias filas de un gridview y luego guardar esos valores.

El codigo es el siguiente:

Código ASP:
Ver original
  1. <asp:GridView ID="GridView1" SkinID="GV" runat="server" AutoGenerateColumns="False"
  2.         DataKeyNames="id_part" DataSourceID="ODS"  
  3.         style="margin-top: 0px" Visible="True" AllowPaging="True" >      
  4.         <Columns>
  5.         <asp:TemplateField HeaderText="Select" SortExpression="Selected">
  6.           <ItemTemplate>
  7.             <asp:CheckBox ID="chkID" runat="server" />
  8.           </ItemTemplate>
  9.         </asp:TemplateField>
  10.           <asp:BoundField DataField="pn" HeaderText="Part Number" InsertVisible="False" ReadOnly="True" SortExpression="pn" />
  11.           <asp:BoundField DataField="rma" HeaderText="RMA" SortExpression="rma" />
  12.           <asp:BoundField DataField="status" HeaderText="Status" SortExpression="status"/>
  13.           <asp:BoundField DataField="qty" HeaderText="Qty" SortExpression="qty"/>
  14.           <asp:BoundField DataField="dir_cliente" HeaderText="Address Customer" InsertVisible="False" ReadOnly="True" SortExpression="dir_cliente" />
  15.           <asp:BoundField DataField="loaded_type" HeaderText="Loaded Type" SortExpression="loaded_type"/>
  16.         </Columns>
  17.     </asp:GridView>

el codigo donde compruebo el checked es el siguiente:

Código c#:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.         for (int i = 0; i < GridView1.Rows.Count; i++)
  4.         {
  5.             GridViewRow row = GridView1.Rows[i];
  6.             bool isChecked = ((CheckBox)row.FindControl("chkID")).Checked;
  7.  
  8.             if (isChecked)
  9.             {
  10.                 string id = GridView1.Rows[i].Cells[2].Text;
  11.                 //int id = (int)GridView1.DataKeys[i].Value;
  12.                 lbl_id_checkbox.Text = "Id = " + id + ";";
  13.                 lbl_id_checkbox.Visible = true;
  14.             }
  15.         }
  16.  
  17.     }

En este ultimo código nunca me entra por el isChecked. Siempre esta a false.

Gracias de antemano.

Un saludo