How to get all the data in a GridControl as an array
9 Dec 20192 minutes to read
Using an indexer to retrieve grid[row, col].CellValue triggers events(like QueryCellInfo). In a GridControl where the data is stored in the grid, you can avoid triggering of these events (which slow things down) by accessing GridData directly.
//Accesses data through the GridData object....
GridData gridData = this.gridControl1.Data;
int numberOfRows = gridData.RowCount;
int numberOfCols = gridData.ColCount;
Console.WriteLine("{0} rows by {1} cols", numberOfRows, numberOfCols);
for(int i = 1; i <= numberOfRows; ++i)
{
for(int j = 1; j <= numberOfCols; ++j)
{
int arrayCount=0;
if(gridData[i, j] != null)
{
GridStyleInfo style = new GridStyleInfo(gridData[i, j]);
strArray[arrayCount] = style.Text;
Console.Write(strArray[arrayCount] + " ");
arrayCount++;
}
else
Console.Write("empty");
}
Console.WriteLine("");
}}
'Accesses data through the GridData object....
Dim gridData As GridData = Me.gridControl1.Data
Dim numberOfRows As Integer = gridData.RowCount
Dim numberOfCols As Integer = gridData.ColCount
Console.WriteLine("{0} rows by {1} cols", numberOfRows, numberOfCols)
Dim i As Integer = 1
Do While i <= numberOfRows
Dim j As Integer = 1
Do While j <= numberOfCols
Dim arrayCount As Integer = 0
If Not gridData(i, j) Is Nothing Then
'Stores all the Cell values in an Array using the GridData object.
Dim style As GridStyleInfo = New GridStyleInfo(gridData(i, j))
strArray(arrayCount) = style.Text
Console.Write(strArray(arrayCount) & " ")
arrayCount += 1
Else
Console.Write("empty")
EndIf
j+=1
Loop
Console.WriteLine("")
i+=1
Loop