Khi bạn cho phép điều khiển lưới tự động tạo cột, về cơ bản nó sẽ liệt kê thông qua các thuộc tính của đối tượng đó và tạo cột cho mỗi đối tượng. Nó không có cách nào để biết rằng bạn muốn hiển thị điều này như là một mạng lưới các giá trị mảng.
Bạn sẽ cần phải tạo một đối tượng mới (chẳng hạn như danh sách liệt kê của một lớp) ra khỏi mảng với các thuộc tính bạn muốn liên kết thành các cột. Một cách nhanh chóng để làm điều này sẽ là sử dụng một loại vô danh, được xây dựng bằng cách sử dụng truy vấn LINQ. Một cái gì đó như:
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();
Ở đây, chúng tôi đang lặp qua tất cả 100 phần tử của mảng. Mỗi phần tử là một mảng gồm 2 chuỗi. Chúng tôi đang tạo một loại ẩn danh trong hai chuỗi đó. Loại này có hai thuộc tính: Col1
và Col2
. Col1
sẽ được đặt thành chỉ mục mảng 0 và Col2
sẽ được đặt thành chỉ mục mảng 1. Sau đó, chúng tôi đang tạo lưới để liệt kê các loại ẩn danh đó. Điều này sẽ giống như thế:
Bạn có thể dĩ nhiên xác định chính xác cách thức các cột sẽ được tạo ra bằng cách thiết lập AutoGenerateColumns
False, và dân cư thu Columns
. Điều này có thể được thực hiện một cách rõ ràng cũng như trong tệp ASPX của bạn.
Nguồn
2013-03-01 20:30:54
làm thế nào để bạn mong đợi để thấy rằng thông tin vào GV? –
XAML của bạn trông như thế nào đối với điều khiển DataGrid của bạn? – ryrich
Đối với [x] [y] Tôi đã hy vọng mỗi hàng sẽ đại diện cho [X] ... và các cột sẽ đại diện cho [Y], sao cho nội dung của [2] [5] sẽ được hiển thị trên Datagrid trong Hàng thứ 2, 5 cột. – phan