Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Problema puntual con DataGrid (http://www.forosdelweb.com/f29/problema-puntual-con-datagrid-291383/)

Alfilxdama 22/04/2005 09:57

Problema puntual con DataGrid
 
Hola a todos, ya he realizado varios trabajos con DataGrid y siempre que necesité provocar algún evento desde un item de la grilla utilicé el control
<asp:ButtonColumn>. Siempre anduvo todo bien, sin embargo no me gusta la presentación, ya sea ButtonType="LinkButton" o ButtonType="PushButton". Por eso ahora quiero hacer el link desde una imagen y para eso estoy usando

<asp:templatecolumn >
<itemtemplate>
<asp:ImageButton ImageUrl="carrito.gif"
CommandName="dtAdd"
runat="server" />
</itemtemplate>
</asp:templatecolumn>

Ahora la cosa se complica porque, de acuerdo a como esté el EnableViewState en False o True, la paginación no anda o si anda la paginación no captura el evento en la parte de código o no logró mantener desde que item se produjo el evento y otras variantes por el estilo. Sólo logré que ande bien sacándole la paginación y con EnableViewState="false". Pero quisiera hacerlo con paginación.
Alguien puede aportar un poco más de claridad a ésto.
Gracias

RootK 22/04/2005 10:09

Hacer una páginacion que trae el datagrid por default debes mantener el state (EnableViewState = true) porque en en caso contrario cuando cambies de página no tomaría la referncia y por lo tanto no paginaria.

La otra forma es paginar todo de forma manual y la verdad no es algo sencillo porque no lo harías con postback si no directamente con querystring.. algo como lo que se hacía con asp normal.

Salu2

Alfilxdama 22/04/2005 10:25

Correcto, para que ande la paginación debe estar en TRUE, pero en ese caso el evento disparado no es capturado por el handler. He puesto algunos response.write para seguirlo y no pasa por donde debería pasar.

RootK 22/04/2005 10:30

En tu caso para capturar que control fue el que dio click lo puedes hacer así:

Cita:

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.ItemCommand
If e.CommandName = "dtAdd" Then
'tu codigo...

End If
End Sub
Salu2 :cool:

Alfilxdama 22/04/2005 10:43

Rootk, lo tengo así, pues de hecho todos los DataGrid que hice funcionan sin problemas. El tema es como lo puse en el primer post, al usar el control que me permite poner una imagen para el link, ahí es que no anda.


La zona horaria es GMT -6. Ahora son las 23:52.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.