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

Cargar DataSource de un DataGridViewComboBoxColumn

Estas en el tema de Cargar DataSource de un DataGridViewComboBoxColumn en el foro de .NET en Foros del Web. Hola a todos, tengo el siguiente caso: Tengo un DataGridView con tres columnas para ingresar datos. Una de las columnas es del tipo DataGridViewComboBoxColumn (cbDivision). ...
  #1 (permalink)  
Antiguo 27/07/2010, 07:43
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Cargar DataSource de un DataGridViewComboBoxColumn

Hola a todos,
tengo el siguiente caso:
Tengo un DataGridView con tres columnas para ingresar datos. Una de las columnas es del tipo DataGridViewComboBoxColumn (cbDivision).
A esta columna necesito asignarle al DataSource, el método que me devuelve la lista de Divisiones que tengo almacenado en la base de datos.
Se que la instrucción es :
Código:
cbDivision.DataSource = new obtenerDivisiones();
El problema es que no logro encontrar el evento donde debo hacer ejecutarla. Inicialmente lo habia hecho en el evento RowEnter, pero eso implica que cada que se inserta una linea en el DataGridView se recorre todas las filas para cargar el DataGridViewComboBoxColumn.

Si alguien tiene una mejor idea , se los agradezco muchisimo.

Código:
private void dataGridView2_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
             foreach (DataGridViewRow fila in dataGridView2.Rows)
            {
                
                ((DataGridViewComboBoxCell)fila.Cells[3]).DataSource = new obtenerDivisiones();
                ((DataGridViewComboBoxCell)fila.Cells[3]).ValueMember = "Codigo";
                ((DataGridViewComboBoxCell)fila.Cells[3]).DisplayMember = "Nombre";                fila.Cells[0].Value = fila.Index;
            }        }

Código:
 internal List<DivisionTR> obtenerDivisiones( )
        {
            string querySQL = @"select ncoddivision,sdescripcion
                                from  tbdivision
                                order by sdescripcion";
            DivisionTR division=null;
            List<DivisionTR> listaDivisiones = new List<DivisionTR>();
            try
            {
                using (OracleCommand consulta = this.conexion.CreateCommand())
                {
                    consulta.CommandText = string.Format(querySQL);
                    using (OracleDataReader cursor = consulta.ExecuteReader())
                    {
                        while (cursor.Read())
                        {
                            division = new DivisionTR();
                            division.Codigo = cursor.IsDBNull(0) ? 0 : cursor.GetInt32(0);
                            division.Nombre = cursor.IsDBNull(1) ? null: cursor.GetString(1);
                            division.ListaLineas = obtenerLineas(division.Codigo, sufijo);
                            listaDivisiones.Add(division);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                       throw ex;
            }
            return listaDivisiones;
        }
  #2 (permalink)  
Antiguo 27/07/2010, 17:03
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Cargar DataSource de un DataGridViewComboBoxColumn

Bueno, yo tuve un problema similar. De momento se me ocurre que pongas una variable tipo bandera, para que luego que se carga el formulario por primera vez se ejecute el rowenter nada mas.

Osea en tu formulario declara algo como esto dentro de tu form:

public bool cargo = false;


Luego tu evento rowenter pones algo como esto

private void dataGridView2_RowEnter(object sender, DataGridViewCellEventArgs e)

if(!cargo)
foreach..........


Finalmente en el evento load de tu formulario y luego que cargas la grilla le asignas un true a tu variable para que el evento ya no se ejecute más


Otra solución es que en vez de usar el evento rowEnter, en el load de tu form luego que se cargo tu grilla la recorras con un for y le asignes ahí la carga al combo de cada celda


saludos!!
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 28/07/2010, 06:55
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Cargar DataSource de un DataGridViewComboBoxColumn

Gracias por tu sugerencia, pero algo similiar hice ayer . Pero al cargar el DataSource del DataGridViewComboBoxColumn desde el Load de la Forma, funciona perfecto para la primera fila que se pinta en el DataGridView cuando arranca la aplicacion. Pero si inserto una nueva fila en el DataGridView , para esta fila ya no me muestra la lista en el DataGridViewComboBoxColumn de esta .
  #4 (permalink)  
Antiguo 28/07/2010, 19:58
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Cargar DataSource de un DataGridViewComboBoxColumn

Cita:
Iniciado por mgarciah Ver Mensaje
Gracias por tu sugerencia, pero algo similiar hice ayer . Pero al cargar el DataSource del DataGridViewComboBoxColumn desde el Load de la Forma, funciona perfecto para la primera fila que se pinta en el DataGridView cuando arranca la aplicacion. Pero si inserto una nueva fila en el DataGridView , para esta fila ya no me muestra la lista en el DataGridViewComboBoxColumn de esta .
Bueno, entonces luego de que agregas una nueva fila te conviene de nuevo cargar la grilla otra vez
saludos.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #5 (permalink)  
Antiguo 30/07/2010, 07:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Cargar DataSource de un DataGridViewComboBoxColumn

Si tienes razon , lo probe y funcionó . Muchas gracias.

Etiquetas: datasource
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 02:30.