Foros del Web » Programación para mayores de 30 ;) » .NET »

DataViewRowState despues de PostBack

Estas en el tema de DataViewRowState despues de PostBack en el foro de .NET en Foros del Web. Hola a todos, Tengo un webform (aspx) que contiene dos grids, lo que intento hacer es modificar los datos contenidos en un grid, alimentado por ...
  #1 (permalink)  
Antiguo 14/03/2011, 00:43
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
DataViewRowState despues de PostBack

Hola a todos,

Tengo un webform (aspx) que contiene dos grids, lo que intento hacer es modificar los datos contenidos en un grid, alimentado por una tabla de tipo DataTable, y al presionar el botón Aceptar, mostrar los registros modificados o agregados en el segundo grid mediante la propiedad DataViewRowState de la tabla.

Al parecer, después del postback no identifica los cambios en la tabla y no se reflejan en el segundo grid.

He intentado con y sin usar variables de sesión, pero msimo resultado.

Agradezco de antemano alguna ayuda para solucionar esto. Saludos.

El código del aspx.cs es el siguiente:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;

public partial class UltraWebGrid_Tester : System.Web.UI.Page
{
static DataTable dt;
DataColumn col;
DataRow row;

protected void Page_Load(object sender, EventArgs e)
{

if (!Page.IsPostBack)
{

dt = new DataTable();

col = new DataColumn("col0");
col.Caption = "NOMBRE";
dt.Columns.Add(col);

col = new DataColumn("col1");
col.Caption = "APELLIDO";
dt.Columns.Add(col);

col = new DataColumn("col2");
col.Caption = "EMAIL";
dt.Columns.Add(col);

row = dt.NewRow();
row[0] = "Kim";
row[1] = "Abercrombie";
row[2] = "[email protected]";
dt.Rows.Add(row);

Session["dt"] = dt;

uwgTest.DataSource = Session["dt"] as DataTable;
uwgTest.DataBind();

dt.Rows[0][0] = "Catherine";

// En esta llamada si se reflejan los cambios.
CheckChanges();

}


}

protected void btnAceptar_Click(object sender, EventArgs e)
{
// En esta llamada, ocurre el postback y ya no se reflejan los cambios.
CheckChanges();
}


private void CheckChanges()
{

dt = Session["dt"] as DataTable;

DataRow[] Rows = dt.Select(null, null, DataViewRowState.OriginalRows | DataViewRowState.ModifiedCurrent | DataViewRowState.Added);

gvTest.DataSource = dt;
gvTest.DataBind();

// Tampoco de esta manera resuelvo el problema.
//gvTest.DataSource = dt.GetChanges(DataRowState.Modified | DataRowState.Added);
//gvTest.DataBind();


}
}
  #2 (permalink)  
Antiguo 14/03/2011, 00:45
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Respuesta: DataViewRowState despues de PostBack

Olvidé mencionar, uwgTest es el grid en el que edito los datos, y es de tipo Infragistics UltraWebGrid (Infragistics35.WebUI.UltraWebGrid.v8.2)

Gracias.
  #3 (permalink)  
Antiguo 14/03/2011, 00:52
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Respuesta: DataViewRowState despues de PostBack

Por ahora lo he solucionado de la siguiente manera:

protected void uwgTest_UpdateCell(object sender, Infragistics.WebUI.UltraWebGrid.CellEventArgs e)
{
dt.Rows[e.Cell.Row.Index][e.Cell.Column.BaseColumnName] = e.Cell.Text;
}

Es decir, ir actualizando la tabla cada que edito alguna celda en el WebGrid.

Si alguien tiene alguna mejor idea, agradeceré sus comentarios.

Saludos,

FVilla.

Etiquetas: postback
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:18.