Tengo una vista de cuadrícula con un campo de plantilla. En ese campo de plantilla hay una casilla de verificación. Tengo un botón Enviar fuera de la vista de cuadrícula para asignar los registros que se marcaron. En la devolución, ninguna casilla de verificación se registra como marcada. Aquí está mi código:Casilla de verificación en TemplateField en Gridview pierde marcada en postback
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cb" Checked="false" runat="server" />
<asp:Label ID="lblCFID" runat="server" Visible="false" Text='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderStyle-HorizontalAlign="Center" DataField="Name" HeaderText="Name" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" DataField="DOB" HeaderText="Date of Birth" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Gender" DataField="Gender" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Status" DataField="Status" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Plan Name" DataField="PlanName" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Type" DataField="ControlType" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Date of Service" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" DataField="DateofService" />
</Columns>
protected void AssignRecords(object sender, EventArgs e)
{
int Rows = gvASH.Rows.Count;
for (int i = 0; i < Rows; i++)
{
//CheckBoxField cb = ((CheckBoxField)gvASH.Rows[i].Cells[1]).;
CheckBox cb = (CheckBox)gvASH.Rows[i].Cells[0].FindControl("cb");
Label lblID = (Label)gvASH.Rows[i].Cells[0].FindControl("lblCFID");
if (cb.Checked == true)
{
string ID = lblID.Text;
//Assign Code
}
}
}
Tengo un punto de interrupción establecido en la cadena ID = lblID.Text; pero nunca encuentra ninguno que esté marcado.
estoy usando C#, pero este ejemplo de la página web asp.net en VB.Net está haciendo básicamente es exactamente lo que estoy haciendo: http: // www .asp.net/Learn/data-access/tutorial-52-vb.aspx Así que sé que es posible, simplemente no sé por qué no funciona para mí. – Jhorra
¿Cuándo es el ciclo de vida de la página su método para asignar el llamado? –
Consulte la Solución aquí, debe mantener la casilla de verificación de selección http://highoncoding.com/Articles/697_Persisting_CheckBox_State_While_Paging_in_GridView_Control.aspx – user2323258