When you allow a network control to automatically generate columns, it basically lists the properties of this object and creates a column for each of them. He does not know that you want to display this as a grid of array values.
You will need to create a new object (for example, an enumerated list of the class) from an array with the properties you want to bind as columns. A quick way to do this is to use an anonymous type built using the LINQ query. Sort of:
string[][] Array = new string[100][]; for(int i = 0; i < 100; i++) // Set some values to test Array[i] = new string[2] { "Value 1", "Value 2" }; dataGridView.DataSource = (from arr in Array select new { Col1 = arr[0], Col2 = arr[1] }); Page.DataBind();
Here we repeat all 100 elements of the array. Each element is an array of 2 rows. We create an anonymous type from these two lines. This type has two properties: Col1 and Col2 . Col1 will be set to array index 0, and Col2 will be set to array index 1. Then we create a grid to list anonymous types. It will look something like this:

Of course, you can determine exactly how the columns will be created by setting AutoGenerateColumns to False and AutoGenerateColumns Columns collection. This can be done declaratively as well as in your .aspx file.
source share