2013-04-09 49 views
0

我想創建一個對象列表來創建一個聯盟表。在文本框中顯示一個列表

下面是object創建的class

public class LeagueRow 
{ 
    public String teamName { get; set; } 
    public String managerName { get; set; } 
    public Int32 played { get; set; } 
    public Int32 won { get; set; } 
    public Int32 draw { get; set; } 
    public Int32 lost { get; set; } 
    public Int32 goalsFor { get; set; } 
    public Int32 goalsAgainst { get; set; } 
    public Int32 goalDifference { get; set; } 
    public Int32 points { get; set; } 

} 

我再嘗試添加的每一行,並在literal1顯示每行看到列表中的內容。在這裏看到:

goalDifference = goalsFor - goalsAgainst; 

List<LeagueRow> leagueTeamRow = new List<LeagueRow>(); 
leagueTeamRow.Add(new LeagueRow { teamName = dReader["teamName"].ToString(), managerName = dReader["ManagerFirstName"].ToString() + " " + dReader["ManagerSurname"].ToString(), played = gamesPlayed, won = won, draw = draw, lost = lost, goalsFor = goalsFor, goalsAgainst = goalsAgainst, goalDifference = goalDifference, points = points }); 

for (int i = 0; i < leagueTeamRow.Count; i++) 
{ 
    Literal1.Text += (leagueTeamRow[i].ToString()); 
} 

我有一個問題,因爲的rows正確數量的literal被顯示,但數據只是有項目的名稱和行名稱,如:PROJECTNAME.LeagueRow多次。

誰能告訴我我做錯了什麼?

+0

對這樣的事情使用'ListBox'。 – 2013-04-09 11:59:25

回答

5

您正在將object添加到文字上,當您在對象上調用ToString()時,您將只獲取類型/名稱空間,我懷疑您需要該屬性。您需要執行以下操作: -

Literal1.Text += (leagueTeamRow[i].teamName); 

顯然將正確的屬性替換爲teamName

+1

或者創建一個自定義的.ToString()方法:-)但是,您的答案是正確的。 – 2013-04-09 11:59:30

2

覆蓋您的LeagueRow類的ToString方法以返回顯示的正確內容(例如團隊和管理員名稱)。

public class LeagueRow 
    { 
     public String teamName { get; set; } 
     public String managerName { get; set; } 
     public Int32 played { get; set; } 
     public Int32 won { get; set; } 
     public Int32 draw { get; set; } 
     public Int32 lost { get; set; } 
     public Int32 goalsFor { get; set; } 
     public Int32 goalsAgainst { get; set; } 
     public Int32 goalDifference { get; set; } 
     public Int32 points { get; set; } 

     public override string ToString() 
     { 
      return string.Format("TeamName: {0}, ManagerName: {1}", teamName, managerName); 
     } 
    } 
0

LeagueRow.ToString()方法是從Object基方法。

您可能需要覆蓋ToString()方法或連接要顯示的字符串。

超越控制:

public class LeagueRow 
{ 
    public String teamName { get; set; } 
    public String managerName { get; set; } 
    public Int32 played { get; set; } 
    public Int32 won { get; set; } 
    public Int32 draw { get; set; } 
    public Int32 lost { get; set; } 
    public Int32 goalsFor { get; set; } 
    public Int32 goalsAgainst { get; set; } 
    public Int32 goalDifference { get; set; } 
    public Int32 points { get; set; } 

    public override string ToString() 
    { 
     return string.Format("TeamName: {0}, ManagerName: {1}", teamName, managerName); 
    } 
} 

連擊:

goalDifference = goalsFor - goalsAgainst; 

List<LeagueRow> leagueTeamRow = new List<LeagueRow>(); 
leagueTeamRow.Add(new LeagueRow { teamName = dReader["teamName"].ToString(), managerName = dReader["ManagerFirstName"].ToString() + " " + dReader["ManagerSurname"].ToString(), played = gamesPlayed, won = won, draw = draw, lost = lost, goalsFor = goalsFor, goalsAgainst = goalsAgainst, goalDifference = goalDifference, points = points }); 

for (int i = 0; i < leagueTeamRow.Count; i++) 
{ 
    Literal1.Text += (leagueTeamRow[i].teamName+"\t"+leagueTeamRow[i].managerName); 
} 
0

你正在做它的方式是蠻好的,但是,你需要重寫你們班ToString方法和定義有哪些你希望字符串看起來像。

0

檢查您正在使用的數據讀取器,如果數據讀取器中有一堆行,則必須通過循環選擇正確的值。類似於

dr[i]["teamName"];