2012-02-15 3 views
3

저는 섭씨를 화씨로 또는 그 반대로 변환하기위한 응용 프로그램을 만들고 있습니다.테이블 렌더링

응용 프로그램에는 필드와 라디오 버튼이 있습니다. 사용자는 "start temperature", "end temperate"및 "iterator"를 채우고 C에서 F 또는 F를 C로 변환하도록 선택합니다.

버튼을 클릭하면 온도가 C로 표시되고 변환 된 표가 렌더링됩니다 온도는 F (또는 그 반대). 나는 for-loop뿐만 아니라 for-loop도 시도했지만, 작동하지는 않는다.

나는 그것이 불필요한 복잡한 해결책이라는 것을 안다. 나는 더 우아한 해결책을 만드는 데 도움을 주어야한다.

 var i = 0; 

     while (startTemp < endTemp) { 
      i += 1; 

      TableRow tRow = new TableRow(); 
      tRow.CssClass = (i % 2 == 0 ? "white" : "grey"); 
      tempTable.Rows.Add(tRow); 

      startTemp = startTemp + iterator; 
      if (startTemp < endTemp) { 
       for (int j = 0; j <= 1; j++) { 
        TableCell tCell = new TableCell(); 
        if ((j % 2) == 0) { 
         tCell.Text = startTemp.ToString(); 
        } 
        else { 
         if (tempType1 == "°C") { 
          convertedTemp = TemperatureConverter.CelsiusToFahrenheit(startTemp); 
         } 
         else { 
          convertedTemp = TemperatureConverter.FahrenheitToCelsius(startTemp); 
         } 
         tCell.Text = convertedTemp.ToString(); 
        } 
        tRow.Cells.Add(tCell); 
       } 
      } 

구인 출력 (반복자 = 2) :

C -------------------- F

39   102 
41   105 
43   109 
45   113 
47   116 
49   120 

EDIT : 한 가지를 제외하고는 제대로 작동합니다. 1을 시작 온도로, 10을 종료 온도로, 1을 반복자로 사용하면 9에서 멈 춥니 다 (10으로 설정하지 않아야 함). 이유는 알 수 없습니다.

답변

3

귀하의 솔루션은 좋다하지만 난 당신이 9 할 당신의 while 루프의 시작에서 때문에

TableRow tRow 
TableCell tCell 
for(int i = startTemp; i < endTemp; i += iterator) 
{ 
tRow = new TableRow(); 
tRow.CssClass = (i % 2 == 0 ? "white" : "grey"); 
tempTable.Rows.Add(tRow); 

tCell = new TableCell(); 
tCell.Text = i.ToString(); 
tRow.Cells.Add(tCell); 
tCell = new TableCell(); 

tCell.Text = convert(i); 

tRow.Cells.add(tCell); 
tempTable.Rows.Add(tRow); 

} 

당신은 9에서 중지 단 1 개 루프를 할 것 + =

1 그래서 난 = (10)는 다음 (10 < 10) 경우 그래서 그래서

경우에 당신이 할 수있는이 정지 (startTemp < = endTemp)

+0

고마워요! 당신은 솔루션이 내 것보다 훨씬 더 우아하고 잘 작동합니다. 필요로하는 것과 동일한 방식으로 변경해야한다는 것을 받아들입니다. :) – holyredbeard

0

나쁘지 않다. 또는 클래스를 사용하여 데이터를 저장할 수 있습니다.

public class ConvertData 
{ 
    public decimal Celsius { get; set; } 

    public decimal Fahrenheit { get; set; } 
} 

첫 번째 단계를 수행하고 ConvertData 개체를 만들어 컬렉션에 저장합니다. 그런 다음 리피터, ListView를 등에 컬렉션을 결합

관련 문제