CLR: .Net / Mono / Boo / Otros CLR > C#
Obtener indice de una celda en un DataGridView
(1/1)
lugarda:
Hola a todos , tengo un método para agregar filas en un DataGridView de acuerdo a la cantidad de registros que obtengo en una List.
El punto es que necesito saber como obtener el indice de la fila que acabo de insertar con dataGridView2.Rows.Add, pues lo necesito para asignar a la columna 2 que es tipo ComboBoxCell un DataSource.
Si alguien me puede ayudar se los agradezco mucho
--- Código: C# --- private void MostrarDatos() { List<AdminSaldoDetTR> llistarAdmin = new AdminSaldoNG().listarFacturasAdmin(conexionOracle,tbcampoConsulta, tbConsecutivo.Text); foreach (AdminSaldoDetTR admintr in llistarAdmin) { dataGridView2.Rows.Add(admintr.Nolinea, admintr.Factura, null, null, null, admintr.DocumentoReferencia, admintr.ValorAsignado, admintr.SaldoFactura, admintr.CodigoDivision,admintr.SubConcepto, admintr.DocumentoCruce,admintr.Estado); ((DataGridViewComboBoxCell)dataGridView2.Rows[Indice].Cells[2]).DataSource = ltDivision; } }
lugarda:
Bueno chicos, le di tantas vueltas al asunto que la única forma que encontré para solucionarlo , fue recorrer el DataGridView cada que inserto una fila , así:
--- Código: C# --- private void MostrarDatos() { //obtener los datos de la tabla maestra tbadmin_saldo List<AdminSaldoTR> lobtenerAdmin = new AdminSaldoNG().obtenerAdminSaldo(conexionOracle, tbcampoConsulta, tbConsecutivo.Text); foreach (AdminSaldoTR adminsaldo in lobtenerAdmin) { tbFechaCrea.Text = adminsaldo.FechaCreacion.ToString(); tbUsuCrea.Text = adminsaldo.UsuarioCreacion; tbEstado.Text = adminsaldo.Estado; tbFechaModifica.Text = adminsaldo.FechaModifica.ToString(); tbUsuarioModifica.Text = adminsaldo.UsuarioModifica; } List<AdminSaldoDetTR> llistarAdmin = new AdminSaldoNG().listarFacturasAdmin(conexionOracle,tbcampoConsulta, tbConsecutivo.Text); foreach (AdminSaldoDetTR admintr in llistarAdmin) { dataGridView2.Rows.Add(admintr.Nolinea, admintr.Factura, null, null, admintr.ValorAsignado,admintr.DocumentoReferencia, admintr.ValorAsignado, admintr.SaldoFactura, admintr.CodigoDivision,admintr.SubConcepto, admintr.DocumentoCruce,admintr.Estado,admintr.FechaCreacion,admintr.UsuarioCreacion); foreach (DataGridViewRow fila in dataGridView2.Rows) { if (!fila.IsNewRow) { ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).DataSource = ltDivision; ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).ValueMember = "Codigo"; ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).DisplayMember = "Nombre"; ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).Value = Convert.ToInt32(dataGridView2.Rows[fila.Index].Cells[8].Value); ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).DataSource = ltSubconcepto; ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).ValueMember = "CodigoSubconcepto"; ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).DisplayMember = "Descripcion"; ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).Value = Convert.ToInt32(dataGridView2.Rows[fila.Index].Cells[9].Value); } } } } espero le sirva a alguien.
hasta pronto.
Navegación
Ir a la versión completa