Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2023
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
ComboBox en grilla filtrado por otra columna

Buenos días a todos,

En esta ocación estoy queriendo hacer una columna ComboBox dentro de un Grid de C# (aplicación de escritorio). Como crear la columna he encontrado y se como hacerlo. El problema es que esta columna puede tener distintos valores en la lista del ComboBox en cada fila dependiendo del valor de otra columna que es la que se usa para filtrar el SP que se llama para cargarlo.

Lo que necesito es ver como se hace para que el ComboBox se llene correctamente en el momento que se está cargando la grilla y no al momento de editar la columna que se usa para el filtro que es lo que en todos lados explican.

Ha probado en varios eventos que al parecer se disparan cuando se carga la grilla pero algunos no me ponen la columna, otros no me cambian los valores con el friltro que le paso. El evento que donde pude crear la columna pone siempre los mismos datos en la lista, pero no es lo correcto porque como dije antes, dependiendo del valor de otra columna estos pueden ser distintos.

Uno de los eventos usados fue el "CelValueChanged" este pone la columna pero siempre con los mismos datos.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #2  
Antiguo 25-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No se entiende bien el problema, los datos que se mostrarán serán los que devuelve la setencia sql utilizada.
Responder Con Cita
  #3  
Antiguo 25-09-2023
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No se entiende bien el problema, los datos que se mostrarán serán los que devuelve la setencia sql utilizada.
Vuelvo a explicar lo que necesito.

Digamos que tengo una primer columna con un código y que la que sigue es la del ComboBox.

Lo que necesito es que al momento que se llena la grilla ese ComboBox no me traiga todos los items de una tabla, sino que traiga los filtrados por ese código. El problema es que ese código puede ser distinto en cada una de las filas. Por esto es que llamo a un SP que por cada fila debería traer los datos que corresponden al código.

El problema no es como mostrar el ComboBox, sino como hacer para que en cada fila quede filtrado el ComboBox. Logro cargar el ComboBox con los datos que me trae el SP, pero cuando se terminan de cargar todas las filas con los datos todos los Combos quedan con los mismos items y no con los que corresponden.

Para cargar los Combos hago algo como lo siguiente. Esto es mas una prueba que otra cosa, porque no se como hacerlo.

Código:
            
            for (nRow = 0; nRow < dgv_Detalles.Rows.Count; nRow++)
            {
                dgv_Detalles.EndEdit();

                DataTable dt;
                // Creo que esto hay que cambiarlo, pero no veo como obtener cada una de las filas al momento que se cargan.
                int rowIndex = dgv_Detalles.Rows.Count - 1;

                dt = new DataTable();
                dt.Columns.Add("nReasonId", typeof(int));
                dt.Columns.Add("sDescript", typeof(string));

                dt.Clear();
                // Obtengo los datos desde un SP.
                dt = reaBlockingReason(getValue(dgv_Detalles.Rows[nRow].Cells["nBranch"].Value, -1)).Copy();

                // "GetComboBoxColum" devuelve el ComboBox configurado con los datos que se le pasa y lo agrega a la columna
                // Parámetros = nombre combo, título columna, Campo código, Campo Descripción, Posición columna, DataTable, ancho.
                dgv_Detalles.Columns.Add(GetComboBoxboColumn("cboMotivos", "Motivo", "nReasonId", "sDescript", 5, dt, 205));
            }
Sacando el for lo mismo lo he puesto en el evento ""CellValueChanged" pero pasa lo mismo que comento. Probe también el evento "RowAdd" pero tampoco funciona.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno

Última edición por elrayo76 fecha: 25-09-2023 a las 19:19:59.
Responder Con Cita
  #4  
Antiguo 25-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Estás usando un dgbrid o un stringgrid?
Responder Con Cita
  #5  
Antiguo 25-09-2023
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Estás usando un dgbrid o un stringgrid?
Uso el DataGridView que viene con .NET
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ancho de columna en grilla MMARCANO Varios 2 27-01-2022 14:48:17
ComboBox filtrado y asignacion de indexs aguml C++ Builder 3 05-12-2017 15:42:23
como ver un tipo de datos de una grilla en otra grilla en el mismo form? calistian Varios 5 01-10-2008 19:29:04
Copiar una fila o columna de una grilla Marcela Varios 10 05-10-2006 17:59:41
Pintar una columna de una grilla zugazua2001 Varios 2 16-08-2006 16:26:10


La franja horaria es GMT +2. Ahora son las 16:21:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi