2013-04-15 116 views
7

我有一個信用卡對象的列表。信用卡類如下:綁定列表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() 
     { 

     } 
    } 
} 

在另一類,我想列表綁定到網格視圖如下:

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

不過,我收到以下錯誤:

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. 

什麼問題?我檢查了列表中實際包含數據,所以我不知道它爲什麼不起作用?這個問題怎麼解決?

+0

您可以發佈GridView_List控件的ASPX內容嗎?看起來像GridView試圖訪問您的CreditCard對象中不存在的列。 –

回答

14

您必須使用DataBinding的公共屬性。更新您的課程如下:

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

我正在這樣做,仍然有同樣的問題。 – Marnee

+0

@Marnee在另一個SO問題中發佈您的XAML和代碼,以便我們提供幫助。我們無法知道你實際在做什麼。 –

+1

謝謝。我只是意識到我很愚蠢。我忘了將公共訪問修飾符放在我的屬性前面。抱歉。 – Marnee

5

您已將CreditCard定義爲帶字段的對象。數據綁定只能通過屬性來完成。因此,您需要爲所有字段執行類似操作:

public String A_Number { get; set; }