none
Como actualizar campo checkbox en un gridview RRS feed

  • Pregunta

  • hola, tengo un grid view con un campo un CheckBox, y en la base de datos tengo un campo bit, el tema es que cuando cargo el gridview con los datos de la base me lo carga sin problemas pero no me permite cambiar el valor del CheckBox porque este me aparece desabilitado. Agradezco si me ayudan
    domingo, 3 de octubre de 2010 4:17

Respuestas


  • pero no me permite cambiar el valor del CheckBox porque este me aparece desabilitado

    o sea no permite marcarlos al usuario los checkbox de la celda en la grilla ?

    has verificado que el datagridview no tenga la propiedad ReadOnly en true

    o quizas el campo que define los checkbox tenga la propiedad como readonly

    estas cargando los datos desde un DataTable ? o usas algun otro tipo de objeto, lo pregunto prque puede que uses alguna coleccion que no es actualziable por el datagridview, por lo tanto no permite cambiar el valor directo en la linea del propio contol

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 3 de octubre de 2010 4:23

  • pero el datatable se vincula muy bien con la grilla, y permite que esta actualice la informacion directamente

    porque dices que puede ser el problema

    o el tema es que no aparecen marcados los check cuando binderas la grilla ?

    si es asi has verificado que el nombre de la propiedad DataPropertyName de la columna coincida con el nombre del campo del datatable que quieres mostrar alli

    si estas usando un dataset tipado verifica que el tipo de dato sea boolean

    ojo si es un dataset no tipado, puede que este causando problemas el tipo de dato con el que se define dinamicamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 3 de octubre de 2010 5:17

  • sera que trae algun problema porque cierro la conexion

    la conexion que este abierto o cerrada no afecta, ya que el DataTable es un objeto no conectado, por lo tanto es correcto que se cierre la conexion a la db, es mas al usar DataAdpater, ni siquiere deberias poner en el codigo el Open() y el Close() porque el adapter solo lo detecta y realiza la apertura y cierre

     

    - si en la grilla editas otra celda, algun con texto, puedes cambiar el valor, o sea escribir en esta ?

    lo planteo porque por ahi el datagridview esta contenido dentro de algun panel, u otro control que esta marcado como readonly

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 3 de octubre de 2010 17:39

Todas las respuestas


  • pero no me permite cambiar el valor del CheckBox porque este me aparece desabilitado

    o sea no permite marcarlos al usuario los checkbox de la celda en la grilla ?

    has verificado que el datagridview no tenga la propiedad ReadOnly en true

    o quizas el campo que define los checkbox tenga la propiedad como readonly

    estas cargando los datos desde un DataTable ? o usas algun otro tipo de objeto, lo pregunto prque puede que uses alguna coleccion que no es actualziable por el datagridview, por lo tanto no permite cambiar el valor directo en la linea del propio contol

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 3 de octubre de 2010 4:23
  • si los datos los estoy cargando desde un DataTable, ese es el problema?
    domingo, 3 de octubre de 2010 4:32

  • pero el datatable se vincula muy bien con la grilla, y permite que esta actualice la informacion directamente

    porque dices que puede ser el problema

    o el tema es que no aparecen marcados los check cuando binderas la grilla ?

    si es asi has verificado que el nombre de la propiedad DataPropertyName de la columna coincida con el nombre del campo del datatable que quieres mostrar alli

    si estas usando un dataset tipado verifica que el tipo de dato sea boolean

    ojo si es un dataset no tipado, puede que este causando problemas el tipo de dato con el que se define dinamicamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 3 de octubre de 2010 5:17
  • el tema es que no aparecen habilitados los check para poder marcar o desmarcar
    domingo, 3 de octubre de 2010 15:18

  • - has verificado el ReadOnly que comente en un post anterior ?

    - las columnas de la grilla los defines en tiempo de diseño, o son creados dinamicamente en base al datatable ?

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 3 de octubre de 2010 15:58
  • el ReadOnly lo tengo en False y las columnas de la grilla las defino en tiempo de diseño y despues le cargo el DataTable

    domingo, 3 de octubre de 2010 16:34
  • este es el codigo donde hago la consulta a la base y devuelvo el DataTable, sera que trae algun problema porque cierro la conexion:

     

    public static DataTable SelectPermisos(BIZ.Persona unaPersona)

    {

     

    try

    {

     

    SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["evetec"].ConnectionString);

    cnn.Open();

     

    SqlCommand cmd = new SqlCommand("PersonaSelectPermisos", cnn);

    cmd.CommandType =

    CommandType.StoredProcedure;

    cmd.Parameters.Add(

    new SqlParameter("@nombreusuario", unaPersona.NombreUsuario));

     

    SqlDataAdapter da = new SqlDataAdapter(cmd);

     

    DataTable dt = new DataTable("Persona");

    da.Fill(dt);

    cnn.Close();

     

    return dt;

    }

     

    catch (Exception ex)

    {

     

    throw ex;

    }

    }

    domingo, 3 de octubre de 2010 16:58

  • sera que trae algun problema porque cierro la conexion

    la conexion que este abierto o cerrada no afecta, ya que el DataTable es un objeto no conectado, por lo tanto es correcto que se cierre la conexion a la db, es mas al usar DataAdpater, ni siquiere deberias poner en el codigo el Open() y el Close() porque el adapter solo lo detecta y realiza la apertura y cierre

     

    - si en la grilla editas otra celda, algun con texto, puedes cambiar el valor, o sea escribir en esta ?

    lo planteo porque por ahi el datagridview esta contenido dentro de algun panel, u otro control que esta marcado como readonly

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 3 de octubre de 2010 17:39