Buenas compañeros, una consulta, tengo unos desarrollos en los cuales para armar el contenido de un gridview paso el objeto por referencia para que en una función o método se construya y se rellene.
Bien este objeto lo primero que debe hacerse es formatearse para quedarse en blanco, bien pues para esto siempre tengo que acudir a la ayuda de una función que me hace una iteración dentro del control por las filas y columnas borrando el contenido.
No existe otra forma más ágil dentro del propio control que realice este formateo, he probado con .Clear pero esto me elimina el contenido pero NO me elimina las celdas que quedan vacías y se siguen acumulando hasta el infinito.
Código:
Public Function getErrores(ByRef objGridView As GridView) As GridView
Dim iRow As Integer = 0
rstResult = getResult()
borrarGridView
objGridView.Columns.Count = rstResult.Fields.Count
objGridView.Rows.Height = 35
objGridView.Header = rstResult.Fields.Count
objGridView.Columns[0].Title = "Id"
objGridView.Columns[0].Width = 0
objGridView.Columns[0].Resizable = False
objGridView.Rows[0].TextAlignment = 3
objGridView.Columns[1].Title = "Estado"
objGridView.Columns[1].Width = 42
objGridView.Columns[1].Resizable = False
objGridView.Rows[1].TextAlignment = 3
objGridView.Columns[2].Title = "Fecha"
objGridView.Columns[2].Width = 80
objGridView.Columns[2].Resizable = False
objGridView.Rows[2].TextAlignment = 3
objGridView.Columns[3].Title = "Usuario"
objGridView.Columns[3].Width = 80
objGridView.Columns[3].Resizable = False
objGridView.Rows[3].TextAlignment = 3
objGridView.Columns[4].Title = "Formulario"
objGridView.Columns[4].Width = 80
objGridView.Columns[4].Resizable = False
objGridView.Rows[4].TextAlignment = 3
objGridView.Columns[5].Title = "Mensaje"
objGridView.Columns[5].Width = 150
objGridView.Columns[5].Resizable = False
objGridView.Rows[5].TextAlignment = 3
objGridView.Header = 3
objGridView.Header = GridView.Horizontal
rstResult.MoveFirst
Do While rstResult.Available
objGridView.Rows.Insert(iRow, 1)
objGridView[iRow, 0].Text = rstResult!Id
objGridView[iRow, 1].Text = rstResult!Estado
objGridView[iRow, 2].Text = rstResult!FechaMod
objGridView[iRow, 3].Text = rstResult!Usuario
objGridView[iRow, 4].Text = rstResult!Formulario
objGridView[iRow, 5].Text = rstResult!Mensaje
iRow += 1
rstResult.MoveNext
Loop
Return objGridView
End
Código:
Public Sub borrarGridView(ByRef objGridView As GridView)
Dim x As Integer
For x = objGridView.Rows.Count - 1 To Step -1
objGridView.Rows.Remove(x, 1)
Next
End
Se aceptan sugerencias de optimización y agilidad del proceso.
Saludos y gracias.