2013-04-15 53 views
7

Tôi có một danh sách các đối tượng thẻ tín dụng. Lớp thẻ tín dụng là những điều sau đây:Danh sách ràng buộc với GridView

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace Client 
{ 
    public class CreditCard 
    { 
     public String A_Number; 
     public String A_Name; 
     public String A_Type; 
     public String A_Owner_Type; 
     public String Bank_City; 
     public String Bank_State; 
     public String Bank_ZIP; 
     public String Balance; 
     public String C_Username; 

     public CreditCard() 
     { 

     } 
    } 
} 

Trong lớp khác, tôi đang cố gắng để ràng buộc danh sách để một cái nhìn lưới như sau:

protected void Page_Load(object sender, EventArgs e) 
     { 
      List<CreditCard> list = (List<CreditCard>)Session["list"]; 
      GridView_List.DataSource = list; 
      GridView_List.DataBind(); 
     } 

Tuy nhiên, tôi nhận được lỗi sau:

The data source for GridView with id 'GridView_List' did not have any properties or attributes from which to generate columns. Ensure that your data source has content. 

Sự cố là gì? Tôi đã kiểm tra xem danh sách có chứa dữ liệu không vì vậy tôi không biết tại sao nó không hoạt động? Làm thế nào để giải quyết vấn đề này?

+0

Bạn có thể vui lòng đăng nội dung ASPX của điều khiển GridView_List không? Có vẻ như GridView đang cố truy cập một cột không tồn tại trong đối tượng CreditCard của bạn. –

Trả lời

14

Bạn phải sử dụng các thuộc tính công cộng cho DataBinding. Cập nhật lớp học của bạn như sau:

public class CreditCard 
    { 
     public String A_Number { get; set; } 
     public String A_Name { get; set; } 
     public String A_Type { get; set; } 
     public String A_Owner_Type { get; set; } 
     public String Bank_City { get; set; } 
     public String Bank_State { get; set; } 
     public String Bank_ZIP { get; set; } 
     public String Balance { get; set; } 
     public String C_Username; 

     public CreditCard() { } 
    } 
+0

Tôi đang thực hiện việc này và vẫn gặp sự cố tương tự. – Marnee

+0

@Marnee đăng XAML và mã của bạn vào một câu hỏi SO khác để chúng tôi có thể trợ giúp. Không có cách nào để chúng tôi biết bạn đang làm gì. –

+1

Cảm ơn bạn. Tôi chỉ nhận ra tôi câm. Tôi quên đặt công cụ sửa đổi truy cập công cộng trước các thuộc tính của tôi. Lấy làm tiếc. – Marnee

5

Bạn đã xác định CreditCard làm đối tượng có các trường. Ràng buộc dữ liệu chỉ có thể được thực hiện với các thuộc tính. Vì vậy, bạn cần phải làm điều gì đó như thế này cho tất cả các trường:

public String A_Number { get; set; } 
Các vấn đề liên quan