none
Agregar columna con checkbox a un datagrid RRS feed

  • Pregunta

  • Hola nuevamente y gracias por su ayuda y disposición.

    Tengo una situación que al parecer ya sea planteado en otros hilos de foro, pero solo encuentro respuestas para windows form o asp c#, yo necesito hacerlo en asp pero con VB. Lo que requiero hacer es agregar una columna con checkbox a un datagrid el cual se llena desde una base de datos, lo intenté hacer en tiempo de diseño pero la columna de checkbox me queda la izquierda de la tabla y a necesito a la derecha. Tratando de seguir uno de las respuestas que hallé en el foro intenté lo siguiente:

    Public Sub cargar_datos_listas(ByVal tabla As System.Web.UI.WebControls.DataGrid, ByVal titulo_lista As String)
                Dim adaptadorSql As SqlDataAdapter
                Dim datos As DataSet
                oConn = abrir_conexion()
                csql = "SELECT * FROM ftTablasReferencia('" + tabla.ID + "')"
                adaptadorSql = New SqlDataAdapter(csql, oConn)
                datos = New DataSet

                Try
                    adaptadorSql.Fill(datos)
                    datos.Tables(0).Columns(0).ColumnName = "Cod"
                    datos.Tables(0).Columns(1).ColumnName = titulo_lista

      'CON ESTA LÍNEA INTENTO AGREGAR LA COLUMNA CON LOS CHECKBOX:
                    datos.Tables(0).Columns.Add("Si/No", GetType(Boolean))

                    tabla.DataSource = datos
                    tabla.DataBind()

                Catch ex As Exception

                End Try
            End Sub

    Con el código anterior se agrega a columna con cabecera "Sí/No", pero no me aparecen los checkbox. Podrían por favor decirme que estoy haciendo mal en el código o si en tiempo de diseño es posible hacer que la columna que al final de la tabla les estaré muy agradecido.


    miércoles, 20 de agosto de 2014 10:58

Respuestas

  • hola

    cuando dices datagrid te refieres al GridView, no ?

    si esi la columna la podrias definir desde el diseñador agregando un columna del tipo Template

    y en ella defines el control checkbox, puedes alinearlo como necesites ya que es html lo que pones en el template de la columna, o sea tu le das la alineacion que quieras

    no la definas desde codigo es para problemas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta wilria17 lunes, 25 de agosto de 2014 15:16
    miércoles, 20 de agosto de 2014 11:22

Todas las respuestas

  • hola

    cuando dices datagrid te refieres al GridView, no ?

    si esi la columna la podrias definir desde el diseñador agregando un columna del tipo Template

    y en ella defines el control checkbox, puedes alinearlo como necesites ya que es html lo que pones en el template de la columna, o sea tu le das la alineacion que quieras

    no la definas desde codigo es para problemas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta wilria17 lunes, 25 de agosto de 2014 15:16
    miércoles, 20 de agosto de 2014 11:22
  • Hola Leandro, antes que nada, muchas gracias por tu atención, paso a contarte:

    El control que utilizo es un DataGrid, tal vez es el nombre que se manejaba en versiones antiguas pues estoy trabajando con el framework 1.1 de .NET, e código que se genera cuando lo agrego es el siguiente:

    Protected WithEvents tabla As System.Web.UI.WebControls.DataGrid.

    En cuanto tema de agregar la columna, lo hice como indicas, pero el problema es que cuando cargo los datos desde la BD la columna de los chekbox se me queda siempre al inicio y necesito que sea la última de la tabla, si pudieras indicarme como cambiar el orden de las columnas.

    Cabe aclarar que los datos los traigo mediante un procedimiento almacenado en la BD, por eso me toca generar las columnas de los datos de manrea dinámica.

    Nuevamente gracias.


    jueves, 21 de agosto de 2014 4:54
  • Hola Leandro, ya pude resolver el asunto, finalmente agregué el checkbox mediante template column como indicaste y para solucionar el problema de que esta columna se mantuviera como la última de la tabla lo que hice fue desactivar la opción de autogenerar columnas y agregar varios bound column para los datos que vienen de la BD.

    Muchas gracias por tu ayuda.

    • Marcado como respuesta wilria17 lunes, 25 de agosto de 2014 15:15
    • Desmarcado como respuesta wilria17 lunes, 25 de agosto de 2014 15:16
    lunes, 25 de agosto de 2014 15:15