Estoy tratando de hacer que DataGridView represente la fila "insertar nueva fila" como la primera fila en la cuadrícula en lugar de la última fila. ¿Cómo hago eso? ¿Es posible incluso en el control?Cómo configurar "insertar nueva fila" como primera fila en DataGridView
Respuesta
No creo que haya ninguna forma de mover la fila "nueva fila" a la parte superior de la cuadrícula de datos.
Pero, ¿qué ocurre si deja la fila superior vacía y los datos rellenos mueven la fila hacia abajo según corresponda? En otras palabras, crea tu propia fila de "nueva fila", que es solo la primera fila en la grilla y agrega nuevas filas en blanco arriba cuando finaliza la edición.
Dim myrow = existingDataTable.NewRow
existingDataTable.Rows.Add(myrow)
adp.Fill(existingDataTable)
With DataGridView1
.DataSource =existingDataTable
End With
¿Puede asignar un valor temporal a la clave de la nueva fila que sea menor que todas las filas existentes? Luego, clasifique un DataView por esa clave y vincule la vista a su cuadrícula.
Mi equipo usa números negativos como identificadores de fila hasta que esa fila se haya insertado en la base de datos. No recuerdo que nuestras nuevas filas aparezcan en la parte superior, pero tampoco tenemos eso como un requisito.
Y si todo lo demás falla la manera hacky sería poner un DataGridView una línea separada por encima de la existente, clonar sus columnas, y el cable hasta el evento de presentación fila para añadir los datos a la inferior :)
Si no está utilizando controles enlazados, dgvItems.Rows.Insert() le permitirá especificar dónde se inserta la fila.
Si está utilizando un DataGridView enlazado, sin una especie activa, agrega la nueva fila a la fuente de datos en la ubicación deseada:
BoundTable.Rows.InsertAt (BoundTable.Rows.NewRow(), RowLocation) ;
He encontrado una relación interesante, si hay ediciones en la fila actual y la fila no se ha confirmado con la fuente de datos (es decir, acaba de comenzar a ingresar los datos), parece que es necesario mover la celda activa a otra fila para confirmar los cambios antes de insertar las filas.
@Jeff Corder publicado accidentalmente antes de leer completamente su comentario, pero lo mantendré actualizado para cualquier persona confusa en su descripción. Sin embargo, esta es, en mi opinión, la forma más efectiva de hacerlo si no está buscando trabajar con identificadores de clave únicos. –
¿Está consumiendo el evento RowDataBound? De ser así, podría verificar si está vinculando la fila de encabezado de columna y luego agregar el código apropiado para insertar una fila justo debajo de esa.
De esta forma, cuando se enlazan las filas de contenido, no hay confusión con los índices de elementos, aunque recomendaría usar algunas DataKeys o algo por el estilo. Además, el uso del evento RowDatabound le permitiría tener una "fila de inserción" disponible cuando el usuario páginas a un bloque diferente de filas en el GridView.
Supongo que quiere decir que cuando quiere agregar una nueva fila, ¿quiere que la fila se inserte realmente en la parte superior de la tabla en lugar de la parte inferior de la tabla como por defecto? Bueno, si esto es así, no tiene que lidiar con clasificación o valores clave; Basta con hacer como tal con el método Insert:
'crear una nueva fila
Dim tmpRow = Nueva DataGridViewRow
' Ajustar la fila de alguna manera
tmpRow.Altura = _cellRectSize
'Añadir la fila a DataGridView (es decir dgvEditor) en la parte superior (índice = 0)
Me.dgvEditor.Rows.Insert (0, tmpRow)
Works como un amuleto para mí, ¡espero que ayude a alguien más!
Como dijo While-E, use Insert
en lugar de Add
. De esta manera puede especificar dónde desea agregar el nuevo registro. Para agregar un nuevo registro en la parte superior de la cuadrícula, simplemente use Insert(0)
.
DataGridView1.Rows.Insert(0)
esto va a añadir un nuevo registro en la parte superior, siempre
DataGridView1.Rows(0).Cells(n).Value = "abc"
esto va a establecer el valor en la columna n
- 1. Hacer una nueva fila sucia mediante programación e insertar una nueva fila después en DataGridView
- 2. Insertar fila en medio de DataGridView (C#)
- 3. DataGridView: cómo ocultar la fila "nueva"?
- 4. ¿Cómo agregar una nueva fila a datagridview?
- 5. Datagridview, deshabilitar botón/fila
- 6. C#: Seleccionar fila de DataGridView
- 7. DatagridView Seleccionar la última fila
- 8. LINQ SELECCIONE PRIMERA FILA
- 9. DataGridView Alto de fila Autotamaño
- 10. La primera columna de DataGridView, primera fila, está seleccionada en Cargar, no quiero esto
- 11. Inserte una nueva fila en DataTable
- 12. Oracle - Insertar nueva fila con Auto Incremental ID
- 13. los números de fila en un DataGridView
- 14. Índice de fila actualmente seleccionada en DataGridView
- 15. Haga doble clic en la fila DataGridView?
- 16. JQuery Datatables Agregar nueva fila
- 17. C# Cálculo de fila de Datagridview
- 18. Seleccione la primera fila coincidente
- 19. C# DataGridView Agregar una fila: al validar, ¿cómo sé que la fila es nueva y aún no está comprometida?
- 20. cómo establecer el foco en la nueva fila en datagridview - vb.net
- 21. primera fila en blanco en excel
- 22. Eliminar última fila Databound DataGridView C#
- 23. DataGridView que siempre tiene una fila seleccionada
- 24. C# - DataGridView no puede agregar fila?
- 25. ¿Agregar una nueva fila al marco de datos, en un índice de fila específico, sin agregar?
- 26. C# Datagridview - Verificar la fila se selecciona
- 27. DataGridView capturar selección de fila de usuario
- 28. Usando SqlDataAdapter para insertar una fila
- 29. Cómo obtengo un DataRow de una fila en un DataGridView
- 30. ¿Insertar fila en DB mientras usa multiprocesos?
hmm que podría funcionar. No estoy seguro de cómo funcionaría con databinding, etc., pero tendré que experimentar un poco con eso. –