propiedades otro net llenar diseƱo dentro crear como bootstrap asp c# asp.net gridview

c# - llenar - gridview dentro de otro gridview asp net



El evento RowCommand de GridView no se dispara (8)

Tengo un GridView que se parece a esto:

<asp:GridView ID="GridView1" AllowPaging="true" OnRowCommand="RowCommand" OnPageIndexChanging="gridView_PageIndexChanging" Runat="server"> <Columns> ... <asp:TemplateField> <ItemTemplate> <asp:Button ID="Button1" ButtonType="Button" CommandName="ItemExport" CommandArgument=''<%# Eval("EXPORT") %>'' Text="Export" runat="server" /> </ItemTemplate> </asp:TemplateField> ... </Columns> </asp:GridView>

Aquí está RowCommand :

protected void RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "ItemExport") { // etc. } }

Al hacer clic en el botón no se RowCommand evento RowCommand . Sin embargo, RowCommand cuando hago clic en el índice de una página en el paginador de GridView.


Acabo de tener un colega que encontró el mismo problema; onrowcommand= fue causado por el atributo onrowcommand= no se estableció en el elemento asp:GridView . Esto se debe establecer en el nombre del controlador que manejará el evento.

... por si alguien tiene el mismo problema!


Coloque el grid.Databind() dentro de if (!IsPostBack)

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { grid.DataBind(); } }


Mi problema fue requiredfieldvalidator

La solución a eso fue: lo deshabilité en la respuesta posterior y luego lo volví a habilitar después del comando row.


No debe enlazar su cuadrícula en las devoluciones de datos en la carga de la página, solo cuando haya cambiado algo que haga que la cuadrícula vuelva a cargar los datos (por ejemplo, clasificación) y solo en los controladores de eventos apropiados.

Otra posible razón: ¿Has deshabilitado ViewState en algún lugar?


Probé las respuestas anteriores y aún no pude volver a publicar una publicación. Terminó siendo un problema de identificación única . Tenía dos <ItemTemplate> con botones que tenían los mismos identificadores. (En diferentes vistas de cuadrícula. Mi segundo fue en un control de usuario)

Cambiar el <asp:Button ID="" /> a un ID único resolvió el problema de devolución de la publicación por mí.

Solo pensé que publicaría para cualquier otra persona que probara las otras opciones sin suerte.


Si tu código es así:

protected void Page_Load(object sender, EventArgs e) { BindGrid(dgv); if (!IsPostBack) { } }

Ponga BindGrid() dentro del bloque !isPostBack


También puede consultar HttpContext.Current.Request.Form ["__ EVENTTARGET"] y si termina con el ID del control, vuelva a enlazar GridView y use Page.FindControl con el objetivo del evento para encontrar el control que activó el evento


Use CausesValidation="false" en la etiqueta del botón. Puede resolver el problema.