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