When you allow the grid control to auto-generate columns, it will basically enumerate through the properties of that object and create a column for each one. It has no way to know that you want to display this as a grid of array values.
You'll need to create a new object (such as an enumerable list of a class) out of the array with the properties you want to bind to as columns. A quick way to do this would be to use an anonymous type, built using a LINQ query. Something like:
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're iterating through all 100 elements of the array. Each element is an array of 2 strings. We're creating an anonymous type out of those two strings. 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're building the grid to that enumeration of anonymous types. This will look something like:

You can of course define exactly how columns will be created by setting AutoGenerateColumns
to False, and populated the Columns
collection. This can be done declaratively as well within your ASPX file.