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

Editar y Actualizar columnas DataGrid

Estas en el tema de Editar y Actualizar columnas DataGrid en el foro de .NET en Foros del Web. Buenas, tengo este codigo, que yo creo q esta bien echo, pero no me funciona, cuando intento actualizar el datagrid, no me lo actualiza, me ...
  #1 (permalink)  
Antiguo 01/07/2005, 01:25
 
Fecha de Ingreso: junio-2005
Mensajes: 20
Antigüedad: 18 años, 10 meses
Puntos: 0
Editar y Actualizar columnas DataGrid

Buenas, tengo este codigo, que yo creo q esta bien echo, pero no me funciona, cuando intento actualizar el datagrid, no me lo actualiza, me sigue manteniendo los valores que tenia antes.

Código:
void pulsadoEdicion(object Sender, DataGridCommandEventArgs e)
{
    repiteDatos.SelectedIndex=-1;
    repiteDatos.EditItemIndex = e.Item.ItemIndex;
    estableceDataBinding();
}

void pulsadoCancelacion(object Sender, DataGridCommandEventArgs e)
{
    repiteDatos.EditItemIndex=-1;
    repiteDatos.SelectedIndex=-1;
    estableceDataBinding();
}

void pulsadoActualizar(object Sender, DataGridCommandEventArgs e)
{
    String nombreCambiado=((TextBox)e.Item.Cells[1].Controls[0]).Text;
    String apellidosCambiado=((TextBox)e.Item.Cells[2].Controls[0]).Text;
    String mailCambiado=((TextBox)e.Item.Cells[3].Controls[0]).Text;
    String permisoCambiado=((TextBox)e.Item.Cells[4].Controls[0]).Text;

    Crear que aki es donde esta el fallo, esto no me lo coge bien, me matiene el texto que habia antes

    String comandoSQL = "UPDATE usuarios SET nombre='" + nombreCambiado + "', apellidos='" + apellidosCambiado + "', mail='" + mailCambiado + "', permiso='" + permisoCambiado + "' WHERE login='" + repiteDatos.DataKeys[(int)e.Item.ItemIndex].ToString()+"'";
    SqlCommand comando = new SqlCommand(comandoSQL, conexion);

    comando.Connection.Open();
    comando.ExecuteNonQuery();

    //et.Text= repiteDatos.DataKeys[(int)e.Item.ItemIndex].ToString();
    et.Text= comandoSQL;

    repiteDatos.EditItemIndex=-1;
    repiteDatos.SelectedIndex=-1;
    estableceDataBinding();
}
haber si sabeis donde tengo el fallo

Por otra parte, sabeis como se puede cambiar el tamaño de los TextBox que salen al darle a actualizar en el Datagrid, es que me salen muy grandes, y me gustarias que fueran mas pequeños



Un Saludo
  #2 (permalink)  
Antiguo 01/07/2005, 04:32
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Te has fijado si en la BD cambian los datos, aunque no te cambien en el grid?
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 01/07/2005, 04:42
 
Fecha de Ingreso: abril-2005
Mensajes: 63
Antigüedad: 19 años
Puntos: 0
prueba a utilizar parámetros en vez de concatenaciones.
comando.addParameter(...) ....
  #4 (permalink)  
Antiguo 01/07/2005, 07:20
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Cuando das click en editar un registro lo primero que se ejecuta es el load de la pagina, imagino que aqui cargas los datos y además tienes el constructor del datagrid databind(), cuando tu ingresas los datos para actualizarlos en el registro y presionas actualizar, otra ves se ejecuta el load de la pagina y como ahí tienes lo anterior mencionado, pues el grid carga los datos reales y no los que modificaste. Por eso no los actualiza.

Solución..

Lo que debes hacer es agregar un ispostback es decir que se ejecute solo cuando sea la primera vez que entra a al pagina, deberas poner esto:


datagrid.datasource= ......
If not IspostBack then
datagrid.databind()
end if
datagrid.datamenber= .....

si es la primera ves que entra a la pagina se ejecutara lo que esta dentro del postback , pero si es la segunda o la tercera o las que sean ya no entra, así evitas que cada ves que actualices se arme de nuevo el grid con los datos que hay en la base, pruebalo y vers que funciona..

Con respecto a lo de los text, solo tienes que dar click derecho sobre el grid, click sobre editar columnas y click sobre lla que quieres editar, ahi te aprece solo la columana con hearder ,itemtemplate,itemedittemplate, footer ahí puedes definir el tamaño del text.

Espero haberte ayudado.
  #5 (permalink)  
Antiguo 01/07/2005, 11:08
 
Fecha de Ingreso: junio-2005
Mensajes: 20
Antigüedad: 18 años, 10 meses
Puntos: 0
Cita:
Iniciado por Shakaio
......
Cierto, que torpe era al no darme cuenta de eso, muchisimas gracias por la ayuda, Shakaio.

Sobre la otra pregunta de como reducir el tamaño de los textbox que aparecen, sabeis algo??

Gracias de nuevo
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 19:53.