Pregunta

Tengo un GridView con un CheckBox asp en un TemplateField. El TemplateField se define como sigue:

<asp:TemplateField HeaderText="HeaderName">
    <ItemTemplate>
        <asp:CheckBox ID="checkBoxId" runat="server" OnCheckedChanged="MyCheckChangedMethod" AutoPostBack="true"/>
    </ItemTemplate>
</asp:TemplateField>

Cuando ejecuto mi proyecto web con un punto de interrupción en el interior MyCheckChangedMethod y haga clic en la casilla de verificación no pasa nada. El punto de interrupción no se ve afectado. Mi depurador de Visual Studio está en marcha.

Además, tengo AutoEventWireup = True en mi página de defnición así que no tengo que enlazar manualmente el evento. Nunca he tenido un problema de hacerlo de esta manera antes. Tengo un botón en la misma configuración de página de la misma manera con un evento de clic y el punto de interrupción se golpeó bien en eso.

¿Alguna idea?

¿Fue útil?

Solución

El evento de devolución para el control de casilla de verificación no se disparará correctamente porque es dentro de un GridView que destroza el ID del control.

Si necesita la casilla de verificación para reflejar los datos se puede utilizar el CampoCasillaVerificación objeto y se unen de esa manera.

Si necesita que realice una acción para la fila, es posible que desee ver en la ButtonField objeto usando la fuerte CommandName strong> propiedad <> RowCommand strong> evento <

Hay formas de acceder a las casillas de verificación en el lado del servidor GridView .

Otros consejos

Es necesario añadir en la etiqueta AutoPostback = True asp:CheckBox.

El problema se produce cuando se llama DataBind antes del evento de control está disparando. Si llama DataBind en Page_Load lo puso en if (!isPostBack) {} y llamada DataBind en el propio controlador de eventos.

intento:

<asp:CheckBox  ID="checkBoxId" runat="server" AutoPostBack=true OnCheckedChanged="MyCheckChangedMethod"/>

Asegúrese de que la página aspx tiene CodeFile = "YOUR_FILE.aspx.cs" en la parte superior.

También ver por que su MyCheckChangedMethod función se define como

Función debe tener object sender, EventArgs e.

public void MyCheckChangedMethod(object sender, EventArgs e)
{
  bool b = false;//your data here
}

También asegúrese de que el web.config ha de depuración se establece en true (piense lo ha hecho).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top