Hola a todos:
Tengo un problema con un datagrid dentro de un webpart en SPS 2003 (Portal).
El datagrid me muestra los datos, pero cuando le doy a los controles de
avanzar/retroceder la pagina NO dispara el evento, y por tanto no pagina.
A continuacion, os muestro el codigo :
protected override void CreateChildControls()
{
grid = new DataGrid();
grid.AutoGenerateColumns = false;
grid.GridLines = GridLines.None;
grid.AllowPaging=true;
grid.PageSize=2;
grid.EnableViewState=true;
grid.PageIndexChanged += new
DataGridPageChangedEventHandler(grid_PageIndexChanged);
Controls.Add(grid);
//aqui irian los datos de las columnas no los incluyo por ser muy largos
protected override void RenderWebPart(HtmlTextWriter output)
{
Rellenar(); //aqui hago el data bind
output.Write("<TABLE>");
output.Write("<TR>");
output.Write("<TD>");
grid.RenderControl(output);
output.Write("</TD>");
output.Write("</TR>");
output.Write("</TABLE>");
}
//este es el evento que NO se dispara
private void grid_PageIndexChanged(Object sender,
DataGridPageChangedEventArgs e)
{
try
{
messages.Text +=" evento ";
grid.CurrentPageIndex = e.NewPageIndex;
Rellenar();
}
catch(Exception err)
{
messages.Text += err.Message;
}
}
Por si os sirve de pista, os dire que he probado lo siguiente:
- si el metodo Rellenar (el que hace la query y la asocia al data grid) lo
pongo dentro del createchildcontrol, muestra el datagrid con datos la primera
vez, pero al paginar, no muestra datos (la consulta siempre me devuelve
datos, lo he comprobado)
- si el metodo Rellenar lo pongo en el Render (como esta ahora), siempre me
muestra los datos, pero siempre los mismos, es decir NO pagina
En cualquiera de los 2 casos, he puesto trazas, y nunca se activan. Es
decir, es como si no se llamara nunca al evento. En la pagina html generada
me coloca una funcion javascript del tipo _dopostback($MiddleZone)
¿sabeis si hay que hacer algo especial para que se dispare el evento? En una
pagina asp.net funciona asi perfectamente.
Por cierto, si alguien tiene un ejemplo de datagrid con paginacion que
fucnione, me vendría muy bien
Muchas Gracias
PD: Tengo aspnet 1.1, sql2000 y el sp2 de WSS y SPS
Leer las respuestas