2013-03-01 20 views
6

我創建了一個2維數組的字符串並填充它。我嘗試將其綁定到一個DataGrid控件,像這樣:如何使用DataGridView顯示此數組的內容?

string[][] Array = new string[100][]; 
dataGridView.DataSource = Array; 

不是看到陣列I看到下面列的內容:長度,LongLenth,排名,SyncRoot上,IsReadOnly,IsFixedSize,IsSyncrhonized。

因此,不顯示我的數組的內容,它顯示數組的屬性。我做錯了什麼?

+0

你希望如何看到,信息進入GV? – 2013-03-01 20:18:34

+0

您的XAML對於DataGrid控件的外觀如何? – ryrich 2013-03-01 20:23:12

+0

對於[x] [y]我希望每一行代表[X] ...和列代表[Y],這樣[2] [5]的內容將顯示在數據網格中的第2排,第5列。 – phan 2013-03-01 20:23:57

回答

3

當您允許網格控件自動生成列時,它將基本上枚舉該對象的屬性併爲每個列創建一個列。無法知道您想將其顯示爲數組值的網格。

您需要從數組中創建一個新對象(例如一個類的可枚舉列表),並使用要作爲列綁定到的屬性。做到這一點的一種快速方法是使用匿名類型,使用LINQ查詢構建。例如:

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(); 

在這裏,我們遍歷數組的所有100個元素。每個元素都是2個字符串的數組。我們從這兩個字符串中創建一個匿名類型。這種類型有兩個屬性:Col1Col2Col1將被設置爲數組索引0,並且Col2將被設置爲數組索引1.然後,我們將構建網格以匿名類型的枚舉。這將是這個樣子:

enter image description here

當然,你可以定義究竟如何列將通過設置AutoGenerateColumns爲False被創建,並填充Columns集合。這可以在你的ASPX文件中以聲明方式完成。

2

您需要將數組轉換爲一個DataTable

string[][] Array = new string[100][]; 
DataTable dt= new DataTable(); 

int l= Array.length; 

for(int i=0;i<l;i++) { 
    dt.LoadDataRow(Array[i], true); //Pass array object to LoadDataRow method 
} 

dataGridView.DataSource = dt; 
0

你可以做這樣的事情

string[][] Array = new string[100][]; 

ArrayList arrList = new ArrayList(); 
for(int i=0;i<100;i++) 
{ 
    arrList.Add(new ListItem(Array[i, 0], Array[i, 1])); 
} 
Grid2D.DataSource = arrList; 
Grid2D.DataBind(); 

請參閱此鏈接Binding Arrays to GridView in ASP.Net

0
using Linq; 

var Found = (from arr in myArray2D select 
new { row1 = arr[0], row2 = arr[1], row3 = arr[2] }) 
.Where(y => (y.row1.ToUpper() + y.row2.ToUpper()) 
.Contains(sText.ToUpper())) 
.OrderByDescending(y => Convert.ToInt32(y.row3)).ToList(); 
dataGridViewFind.DataSource = Found; 
dataGridViewFind.AutoResizeColumns(); 
+0

這些命令在數組的第1列和第2列中搜索文本,並通過將數組的第1,2和3列返回,並將其從第3列按字符串轉換爲數字進行排序。 – 2017-03-22 00:07:24