2013-04-09 3 views
0

리그 테이블을 만들려면 개체 목록을 만들려고합니다. 여기 텍스트 상자에 목록 표시

object 위해 만든 class입니다 : 다음 각 행을 추가하고 목록의 내용을 볼 수 literal1의 각 행을 표시하려고

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; } 

} 

. 여기에 본 : PROJECTNAME.LeagueRow 여러 번 : rows의 정확한 수는 literal에 표시되는대로 나는 그러나 데이터 단지 프로젝트의 이름과 같은 행 이름을 가진, 문제가 오전

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

.

누구든지 내가 뭘 잘못하고 있다고 말할 수 있습니까?

+0

이런 식으로'ListBox'를 사용하십시오. –

답변

5

리터럴에 object을 추가하면 객체에서 ToString()을 호출 할 때 유형/네임 스페이스를 가져올 것입니다. 속성을 원한다고 생각됩니다. 다음과 같이해야합니다. -

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

분명히 teamName을 올바른 속성으로 바꾸십시오.

+1

또는 사용자 정의 .ToString() 메소드를 생성하십시오. 예, 답이 맞습니다. –

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() 메서드를 덮어 쓰거나 표시 할 문자열을 연결해야합니다.

오버라이드 (override)하는 :

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

CONCATENATE : 당신이 그것을하고있는 방법은 잘입니다

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 메소드를 오버라이드 (override)가 정의 할 필요 당신은 끈이 좋아 보이길 원합니다.

0

사용중인 데이터 판독기를 검사하십시오. 데이터 판독기에 행 수가 많은 경우 루프를 통해 올바른 값을 선택해야합니다. 같은 것

dr[i]["teamName"]; 
관련 문제