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

Checkbox detro de DataGrid

Estas en el tema de Checkbox detro de DataGrid en el foro de .NET en Foros del Web. Hola, tengo un problema al añadir un checkbox dentro de una columna de un DAtaGrid, me lo saca pero no me deja checkarlo. Creo que ...
  #1 (permalink)  
Antiguo 27/01/2009, 01:58
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 2 meses
Puntos: 0
Checkbox detro de DataGrid

Hola, tengo un problema al añadir un checkbox dentro de una columna de un DAtaGrid, me lo saca pero no me deja checkarlo. Creo que es problema de las propiedades del Datagrid, El readonly le tengo a False pero tiene que haber otra opción que me lo deshabilite.

Código:
 da.SelectCommand.CommandText = " SELECT t.b_liberada as Quitar, p.c_pregunta_id as 'Nº', p.d_pregunta as Pregunta, t.d_observa  as Comentario " + _

                                             " FROM trav_co_preginsp_ts p " + _

                                             " , trav_cont_insp_ts_pr t " + _

                                             " WHERE t.c_pregunta_id = p.c_pregunta_id" + _

                                             " AND t.c_insp_cont_ts_id  = " + CStr(VG.Inspeccion) + _

                                             " AND (t.c_respuesta = 'N' AND p.b_critico = 'S')"

 

        End If

 

        Dim mDtResultado As DataTable

        mDtResultado = New DataTable

        'naranja

        DataGridPreguntas.DataSource = mDtResultado

        DataGridPreguntas.ReadOnly = True

        da.Fill(mDtResultado)

        DataGridPreguntas.Columns.Item(0).Width = "40"

        DataGridPreguntas.Columns.Item(1).Width = "30"

        DataGridPreguntas.Columns.Item(2).Width = "500"

        DataGridPreguntas.Columns.Item(3).Width = "520"

        DataGridPreguntas.Columns.Insert(0, New DataGridViewCheckBoxColumn)
Creo cuatro Columnas a partir de la Select de arriba y en la primera columna es donde quiero poner el check, en el 0.
Gracias de antemano.
  #2 (permalink)  
Antiguo 27/01/2009, 02:17
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Checkbox detro de DataGrid

Qué pasa javiglez!!!!
Hace tiempo que llevo queriendo yo hacer eso. Según veo, lo qeu pretendes es modificar tu columna 0 (que imagino que será un boolean) y que al insertarle el datagrid, que ponga los chekbox en su sitio. ¿me equivoco? Si lo consigues, por favor, cuéntame como.

Mientras tanto, te diré cómo he solucionado este tema yo. (a lo mejor es un poco cutr, pero estuve investigando durante bastante tiempo y al final fue lo único qeu encontré)
Hago lo mismo que tú hasta el final. Tambien creo una nueva columna de tipo checkbox. Si te das cuenta, al hacer el datagrid.insert(0,blablalba) lo que haces es insertar una columna y desplazar el resto una posicion. (ahora no recuerdo si esto se conseguía con el insert o con el add)
Una vez qeu haces eso, ya solo tienes qeu decirle que la anterior columna 0 (ahor será la 1) quieres que este a visible=false, y te queda no más que recorrer el datagrid fila por fila actualizando el checkbox creado en la columna 0, con los datos de la columna 1

Qué te parece el follon¿????? Funcionar funciona perfectamente. Quizás no sea la mejor forma. Yo creo que debe de existir algun modo de cambiar la propiedad de una columna en tiempo de ejecucion, pero no lo he conseguido nunca. Si mal no recuerdo, esta propiedad está a readonly siempre, por lo qeu no se puede.

En fin, que espero haberte ayudado, ya nso dices.
Un saludo, y te recuerdo que si lo consigues de la otra forma, avísame!!!
saludos.
  #3 (permalink)  
Antiguo 27/01/2009, 03:23
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Checkbox detro de DataGrid

Cita:
Iniciado por javi_cassi Ver Mensaje
Qué pasa javiglez!!!!
Hace tiempo que llevo queriendo yo hacer eso. Según veo, lo qeu pretendes es modificar tu columna 0 (que imagino que será un boolean) y que al insertarle el datagrid, que ponga los chekbox en su sitio. ¿me equivoco? Si lo consigues, por favor, cuéntame como.

Mientras tanto, te diré cómo he solucionado este tema yo. (a lo mejor es un poco cutr, pero estuve investigando durante bastante tiempo y al final fue lo único qeu encontré)
Hago lo mismo que tú hasta el final. Tambien creo una nueva columna de tipo checkbox. Si te das cuenta, al hacer el datagrid.insert(0,blablalba) lo que haces es insertar una columna y desplazar el resto una posicion. (ahora no recuerdo si esto se conseguía con el insert o con el add)
Una vez qeu haces eso, ya solo tienes qeu decirle que la anterior columna 0 (ahor será la 1) quieres que este a visible=false, y te queda no más que recorrer el datagrid fila por fila actualizando el checkbox creado en la columna 0, con los datos de la columna 1

Qué te parece el follon¿????? Funcionar funciona perfectamente. Quizás no sea la mejor forma. Yo creo que debe de existir algun modo de cambiar la propiedad de una columna en tiempo de ejecucion, pero no lo he conseguido nunca. Si mal no recuerdo, esta propiedad está a readonly siempre, por lo qeu no se puede.

En fin, que espero haberte ayudado, ya nso dices.
Un saludo, y te recuerdo que si lo consigues de la otra forma, avísame!!!
saludos.
Hola, no entiendo muy bien tu forma pero lo de un check se tiene que poder hacer por dos cosas:
1. lo he visto hecho.
2. sino no te dejaría insertarlo para nada.....

Yo sigo pensando que es una propiedad del DataGrid que se nos escapa que hay que meter...tiene que poderse modificar en tiempo de ejecución. a ver si alguien del foro nos peude echar una mano, pon tu código ese del parche que me cuentas

Gracias. a ver si entre todos los sacamos.
  #4 (permalink)  
Antiguo 27/01/2009, 03:39
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Checkbox detro de DataGrid

Bueno era una bobada quita la linea de DataGridPreguntas.ReadOnly = True y ponla a False y ya sale....

TIERRA TRAAAAAAAAAAAAAAAAAGAME!!!!
  #5 (permalink)  
Antiguo 27/01/2009, 04:20
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Checkbox detro de DataGrid

Hola javi, probaré esto qeu dices, pero juraría que cuando lo tuve que hacer hice lo imposible par asolucionarlo y no pude.(ahora que lo pienso creo qeu yo tambien trabajo con el readonly, porque no qiero que le deje meter cosas al usuario, pero supongo qeu se soluciona poniendole el readonly =true despues de la gestion esta.) Como sea eso, me meto un tiro, jejej.

la idea que tube yo era la siguietne:
tienes ya tu datagrid relleno, insertas una nueva columna checkbox. Y esa columna la rellenas leyendo el dato de la columna de la que quieres sacar el dato. Luego ocultas esta ultima columna y el resultado es el mismo (bueno, el mismo mismo esta claro qeu no)

en fin, probare lo qeu dices.
un saludo
  #6 (permalink)  
Antiguo 27/01/2009, 05:03
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Checkbox detro de DataGrid

Hola javi. he probado a hacerlo igual que tú y no consigo el resultado deseado.
Mira lo mío:
Cita:
Iniciado por javi_cassi Ver Mensaje
v_select = "SELECT c.abrev, c.unid, c.descr, c.categoria, " & _
" calcular_parametros_sist_grup (c.unid, c.clave, c.ficticio, 1) , " & _
" calcular_parametros_sist_grup (c.unid, c.clave, c.ficticio, 2) , " & _
" calcular_parametros_sist_grup (c.unid, c.clave, c.ficticio, 3) , " & _
" calcular_parametros_sist_grup (c.unid, c.clave, c.ficticio, 4) , " & _
" calcular_parametros_sist_grup (c.unid, c.clave, c.ficticio, 5) , " & _
" calcular_parametros_sist_grup (c.unid, c.clave, c.ficticio, 6) , " & _
" calcular_parametros_sist_grup (c.unid, c.clave, c.ficticio, 7) , " & _
" c.obs_categ, c.ficticio, c.clave "
v_from = " FROM v_sist_grup c "
v_order = " ORDER BY C.ABREV "

cadena = v_select & v_from & condiciones_select & v_order
'he quitado las ocndiciones para que no aparezca una select muy grande

tabla.Clear()
DataGridView1.Rows.Clear()
local_data_adapter_registros_sistemas = New OleDbDataAdapter(cadena, My.Settings.ConnectionString)
localcommandbuilder = New OleDbCommandBuilder(local_data_adapter_registros_s istemas)

DataGridView1.DataSource = tabla
DataGridView1.ReadOnly = False
local_data_adapter_registros_sistemas.Fill(tabla)
'da.Fill(mDtResultado)

DataGridView1.Columns.Insert(4, New DataGridViewCheckBoxColumn)
DataGridView1.Columns.Insert(5, New DataGridViewCheckBoxColumn)
DataGridView1.Columns.Insert(6, New DataGridViewCheckBoxColumn)
DataGridView1.Columns.Insert(7, New DataGridViewCheckBoxColumn)
Si no he mirado mal, así es como haces tú. Y de esta manera lo único qeu consigo es qeu en las posiciones 4,5,6 y 7 me inserte un checkbox, pero no que los campos que estaban en esa pocición cambien de true o false "que es como estaban" a un tick en el checkbox. Que es lo que quiero hacer.

***** Creo que me acabo de dar cuenta de que tenemos un problema diferente. ¿Tú que es lo que querías hacer¿ ?inserta un checkbox y ya? ¿o querias hacer como yo, que un campo del datagrid qeu tiene true y false cambie a checkbox??

Gracias por echarle un ojo de igual modo.
  #7 (permalink)  
Antiguo 27/01/2009, 05:07
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Checkbox detro de DataGrid

efectivamente acabo de leer tu primer post, y el problema es diferente. Tu has insertado un check desde codigo y a continuacion has querido chequearlo y no has podido porque tenias el readonly a true. (estaba obcecado en que te pasaba lo mismo que a mi y leí de ese modo)

Como te comentaba mi problema es qeu me traia ya de la base de datos el valor de los checkbox, y queria que un campo del datagrid me cambiase a de tipo y se convirtiera en un check box. (por eso te explicaba todo aquello de insertarlo y luego rellenarlo con los datos del campo qeu te traes....?

En fin, siento haberte liado. Si hubiera leido bien te hubiera dicho lo del read desde el principio.

un saludo.
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 21:37.