(demasiado antiguo para responder)
CheckBox en DataGrid VB.net
Robert
2005-08-26 20:27:51 UTC
Buenas Tardes,

Disculpen la molestia pero me gustaría saber si me pueden ayudara con dos
pequeñas dudas que tengo en cuanto a un trabajo que estoy realizando:

Debo colocar en un Datagrid una columna con CheckBox y la otra es
colocarle el ancho que yo desee a determinada columna del DataGrid, por
ejemplo a la columna de los objetivos...

Requiero la columna de los Checkbox para que los usuarios puedan
seleccionar que productos desean descargar y lo del ancho de las columnas
es simplemente para darle una mejor vista al Datagrid…

El datagrid lo cargo con el siguiente Query:

SQL1 = "SELECT B.DESC_PRODUCTO,A.DESC_ARCHIVO,A.OBJETIVO,A.FECHA"
SQL1 = SQL1 & " FROM BEM_ARCHIVO A"
SQL1 = SQL1 & " INNER JOIN BEM_GRUPO B ON (B.COD_GRUPO=A.COD_GRUPO)"
SQL1 = SQL1 & " INNER JOIN BEM_CATEGORIA C ON
C.COD_CATEGORIA=A.COD_CATEGORIA)"
SQL1 = SQL1 & " INNER JOIN BEM_FORMATO D ON
(D.COD_FORMATO=A.COD_FORMATO)"
SQL1 = SQL1 & " INNER JOIN BEM_TIPO E ON (E.COD_TIPO=A.COD_TIPO)"
SQL1 = SQL1 & " WHERE B.DESC_GRUPO IN " & condicion & ""
SQL1 = SQL1 & " ORDER BY B.DESC_GRUPO"

Luego creo el SqlDataAdapter y el DataSet

Dim SqlDA_Productos As New SqlClient.SqlDataAdapter(SQL1,
conn.SqlConnection)
Dim DS_Estudios_Productos As New DataSet

SqlDA_Productos.Fill(DS_Estudios_Productos)
MyDataGrid.DataSource = DS_Estudios_Productos.Tables(0) (Cargo el
DataGrid)

Muchisimas gracias de Antemano por toda la colaboración que me puedan
brindar…

Saludos Cordiales,
Robert García
Alberto
2005-09-03 05:53:36 UTC
Hola Robert, espero que esto te sirva de ayuda.

Yo te recomiendo que te crees un diseño nuevo del datagrid en el que
puedes añadir la columna del checkbox con la instancia

para añadir una columna que no estaba en tu tabla primero tienes que
crearla en el dataset que has usado para rellenar el datagrid.
Dim mi_columna As New DataColumn
mi_columna.DataType = System.Type.GetType("System.Boolean") ' TIENES QUE
DECIRLE QUE SEA BOOLEANA
mi_columna.DefaultValue = 1
mi_columna.Caption = "prueba"
mi_columna.ColumnName = "prueba"
ds_usuarios.Tables("mi_tabla").Columns.Add(mi_columna)
......................

una ve añadida tu nueva columna carga el dataset en el datagrid.
......................
dg_usuarios.DataSource = ds_usuarios
dg_usuarios.DataMember = ds_usuarios.Tables("mi_tabla").TableName
.....................
Ahora diseña tu datagrid a tu gusto
......................

Dim tabla_estilo As New DataGridTableStyle ' definimos una nueva
instancia y creamos una tabla de estilos.
tabla_estilo.MappingName = ds_usuarios.Tables("usuarios").TableName '

Asignamos la fuente
diseño_datagrid_usuarios(tabla_estilo) ' funcion que realiza el diseño.
dg_usuarios.TableStyles.Add(tabla_estilo) ' añadimos al datagrid su
nuevo aspecto visual.
.......................

sub diseño_datagrig_usuarios (byref tabla estilo as DataGridTableStyle )

tienes que definir y configurar cada una de las columnas que estes
por colocar en tu datagrid, te muestro el ejemplo de dos
...................
Dim col_check As New DataGridBoolColumn ' ESTO ES PARA AÑADIR LA
COLUMNA TIPO CHECKBOX
With col_check
.Mappingname="prueba" ' nombre del campo añadido en
el dataset
.HeaderText = "CHECK"
.Width = 35
End With
tabla_estilo.GridColumnStyles.Add(col_check) ' esta
instruccion siempre despues de configura una columna
........................
end sub
Post by Robert
Buenas Tardes,
Disculpen la molestia pero me gustaría saber si me pueden ayudara con dos
Debo colocar en un Datagrid una columna con CheckBox y la otra es
colocarle el ancho que yo desee a determinada columna del DataGrid, por
ejemplo a la columna de los objetivos...
Requiero la columna de los Checkbox para que los usuarios puedan
seleccionar que productos desean descargar y lo del ancho de las columnas
es simplemente para darle una mejor vista al Datagrid.
SQL1 = "SELECT B.DESC_PRODUCTO,A.DESC_ARCHIVO,A.OBJETIVO,A.FECHA"
SQL1 = SQL1 & " FROM BEM_ARCHIVO A"
SQL1 = SQL1 & " INNER JOIN BEM_GRUPO B ON (B.COD_GRUPO=A.COD_GRUPO)"
SQL1 = SQL1 & " INNER JOIN BEM_CATEGORIA C ON
C.COD_CATEGORIA=A.COD_CATEGORIA)"
SQL1 = SQL1 & " INNER JOIN BEM_FORMATO D ON
(D.COD_FORMATO=A.COD_FORMATO)"
SQL1 = SQL1 & " INNER JOIN BEM_TIPO E ON (E.COD_TIPO=A.COD_TIPO)"
SQL1 = SQL1 & " WHERE B.DESC_GRUPO IN " & condicion & ""
SQL1 = SQL1 & " ORDER BY B.DESC_GRUPO"
Luego creo el SqlDataAdapter y el DataSet
Dim SqlDA_Productos As New SqlClient.SqlDataAdapter(SQL1,
conn.SqlConnection)
Dim DS_Estudios_Productos As New DataSet
SqlDA_Productos.Fill(DS_Estudios_Productos)
MyDataGrid.DataSource = DS_Estudios_Productos.Tables(0) (Cargo el
DataGrid)
Muchisimas gracias de Antemano por toda la colaboración que me puedan
brindar.
Saludos Cordiales,
Robert García