Foros del Web » Programando para Internet » ASPX (.net) »

Problema con uso de DataTable con variables Session

Estas en el tema de Problema con uso de DataTable con variables Session en el foro de ASPX (.net) en Foros del Web. Estimados, necesito ir agregando filas a un datatable para ir incrementandolo pero no puedo lograrlo. tengo un gridview para mostrar la informacion y 2 botones, ...
  #1 (permalink)  
Antiguo 11/08/2009, 21:43
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Problema con uso de DataTable con variables Session

Estimados, necesito ir agregando filas a un datatable para ir incrementandolo pero no puedo lograrlo. tengo un gridview para mostrar la informacion y 2 botones, el primer boton ingresa 5 filas al datatable y funciona y el segundo boton tendria que ingresar una 6ta fila pero en vez de añadirla borra las 5 filas ya ingresadas por el primer boton y muesta solo la ultima ingresada por el 2do boton. Esto quiere decir que no me esta almacenando el datatable la variable session?. Como lo hago?.

Mi codigo:

Código PHP:
protected void Page_Load(object senderEventArgs e)
    {
        
CrearDT();
        
//Page.Session["VarSession"] = dtabla;
        
GridView1.DataSource dtabla;
        
GridView1.DataBind();
    } 
Código PHP:
public DataTable CrearDT()
    {
        
dtabla.Columns.Add("Dosage"typeof(int));
        
dtabla.Columns.Add("Drug"typeof(string));
        
dtabla.Columns.Add("Patient"typeof(string));
        
dtabla.Columns.Add("Date"typeof(DateTime));
        return 
dtabla;
    } 
Código PHP:
public DataTable AddInfo()
    {
        
dtabla.Rows.Add(25"Indocin""David"DateTime.Now);
        
dtabla.Rows.Add(50"Enebrel""Sam"DateTime.Now);
        
dtabla.Rows.Add(10"Hydralazine""Christoff"DateTime.Now);
        
dtabla.Rows.Add(21"Combivent""Janet"DateTime.Now);
        
dtabla.Rows.Add(100"Dilantin""Melanie"DateTime.Now);
        return 
dtabla;
    } 
Código PHP:
protected void Button1_Click(object senderEventArgs e)
    {
        
//Session.Add("VarSession", AddInfo());
        
AddInfo();
        
GridView1.DataSource dtabla;
        
GridView1.DataBind();
    } 
Código PHP:
protected void Button2_Click(object senderEventArgs e)
    {

        
DataRow dRow dtabla.NewRow();
        
dRow["Dosage"] = 102;
        
dRow["Drug"] = "xx";
        
dRow["Patient"] = "xxx";
        
dRow["Date"] = DateTime.Now;
        
dtabla.Rows.Add(dRow);
        
        
//Page.Session["VarSession"] = dtabla;
        //Session.Add("VarSession",dtabla);

        
GridView1.DataSource dtabla;
        
GridView1.DataBind();
    } 
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #2 (permalink)  
Antiguo 12/08/2009, 01:35
 
Fecha de Ingreso: abril-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Problema con uso de DataTable con variables Session

Buenas,
Has puesto código PHP y yo diria que es C#

Cada vez que haces click en un boton para llamara a un evento de servidor haces un postback y se vuelve a ejecutar el evento load, por tanto esto:

CrearDT();
//Page.Session["VarSession"] = dtabla;
GridView1.DataSource = dtabla;
GridView1.DataBind();

lo estas ejecutando siempre

ponlo dentro de este IF

if(!isPostBack){
.....................
}

Por tanto cada si se ejecuta al cargar, no cada vez que haces click en un boton.
__________________
http://literaturaprogramada.blogspot.com.es/
literaturapogramada.blogspot - Reflexiones mundanas sobre la programación
  #3 (permalink)  
Antiguo 13/08/2009, 13:08
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Problema con uso de DataTable con variables Session

Cita:
Iniciado por meula Ver Mensaje
Buenas,
Has puesto código PHP y yo diria que es C#

Cada vez que haces click en un boton para llamara a un evento de servidor haces un postback y se vuelve a ejecutar el evento load, por tanto esto:

CrearDT();
//Page.Session["VarSession"] = dtabla;
GridView1.DataSource = dtabla;
GridView1.DataBind();

lo estas ejecutando siempre

ponlo dentro de este IF

if(!isPostBack){
.....................
}

Por tanto cada si se ejecuta al cargar, no cada vez que haces click en un boton.
Estimado gracias por contestas pero no era eso, lo solucione de esta forma:

Cita:
protected void Button2_Click(object sender, EventArgs e)
{
DataTable NewTabla = (DataTable)Session["VarSession"];

DataRow dRow = NewTabla.NewRow();
dRow["Dosage"] = 102;
dRow["Drug"] = "xx";
dRow["Patient"] = "xxx";
dRow["Date"] = DateTime.Now;
NewTabla.Rows.Add(dRow);

Page.Session["VarSession"] = NewTabla;

GridView1.DataSource = NewTabla;
GridView1.DataBind();
}
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
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 12:34.