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
<asp:GridView ID="GridView1" SkinID="GV" runat="server" AutoGenerateColumns="False" DataKeyNames="id_part" DataSourceID="ODS" style="margin-top: 0px" Visible="True" AllowPaging="True" > <Columns> <asp:TemplateField HeaderText="Select" SortExpression="Selected"> <ItemTemplate> <asp:CheckBox ID="chkID" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="pn" HeaderText="Part Number" InsertVisible="False" ReadOnly="True" SortExpression="pn" /> <asp:BoundField DataField="rma" HeaderText="RMA" SortExpression="rma" /> <asp:BoundField DataField="status" HeaderText="Status" SortExpression="status"/> <asp:BoundField DataField="qty" HeaderText="Qty" SortExpression="qty"/> <asp:BoundField DataField="dir_cliente" HeaderText="Address Customer" InsertVisible="False" ReadOnly="True" SortExpression="dir_cliente" /> <asp:BoundField DataField="loaded_type" HeaderText="Loaded Type" SortExpression="loaded_type"/> </Columns> </asp:GridView>
el codigo donde compruebo el checked es el siguiente:
Código c#:
Ver original
protected void Button2_Click(object sender, EventArgs e) { for (int i = 0; i < GridView1.Rows.Count; i++) { GridViewRow row = GridView1.Rows[i]; bool isChecked = ((CheckBox)row.FindControl("chkID")).Checked; if (isChecked) { string id = GridView1.Rows[i].Cells[2].Text; //int id = (int)GridView1.DataKeys[i].Value; lbl_id_checkbox.Text = "Id = " + id + ";"; lbl_id_checkbox.Visible = true; } } }
En este ultimo código nunca me entra por el isChecked. Siempre esta a false.
Gracias de antemano.
Un saludo