2013-10-03 3 views
1

while 루프 첫 번째 반복에서 폼 요소를 읽을 수 없음 :내가 5 번 실행되는 while 루프가 ASP.NET

string qry = "Select * from tbl_Products order by ProductId"; 
SqlCommand cmd = new SqlCommand(qry, con); 
con.Open(); 
sbProducts="<table><tr>"; 
using (SqlDataReader sdr = cmd.ExecuteReader()) 
{ 
    while (sdr.Read()) 
    { 
     sbProducts = sbProducts + "<td>"; 
     sbProducts = sbProducts + "<Form>"; 
     sbProducts = sbProducts + "123"; 
     sbProducts = sbProducts + "</Form>"; 
     sbProducts = sbProducts + "</td>"; 
    } 
    sbProducts = sbProducts + "</table>"; 
    CellTwo = sbProducts.ToString(); 
    con.Close(); 
} 

그것의 출력은 괜찮 있지만 포장되지 않은 첫 번째 반복의 TD 포장되지 않습니다 양식 태그. 매우 비논리적 인 것 같습니다. 출력은 다음과 같습니다.

<table> 
<tr> 
<td>123</td> 
<td><form>123</form></td> 
<td><form>123</form></td> 
<td><form>123</form></td> 
<td><form>123</form></td> 


</tr> 
</table> 
+2

... 처음에는 sbProducts 무엇입니까? 어디서/쓰고 있니? 또한'sbProducts + = "";은 더 짧은 방법입니다. – MikeSmithDev

+1

while 루프가 5 번 실행되고 있습니까? – doctorlove

+0

sbProducts는 문자열입니다. –

답변

1

두 가지 문제점이 있습니다. 1) 테이블을 제대로 만들지 못했습니다 (</tr>이 누락되었습니다). 2)이 테이블은 다른 폼에있을 가능성이 큽니다. 당신이, 당신이 예상대로 나오는 것을 볼 수 있습니다 당신 있습니다하지는 또 다른 형태의 안에이 을하고 있는지 확인되면

while (sdr.Read()) 
{ 
    sbProducts += "<td>"; 
    sbProducts += "<Form>"; 
    sbProducts += "123"; 
    sbProducts += "</Form>"; 
    sbProducts += "</td>"; 
} 
sbProducts += "</tr></table>"; //You were missing this </tr> 

: (약간 정리) 코드는 같아야합니다. 양식은 다른 양식 인 HTML 표준을 포함 ​​할 수 없습니다.

+0

이것은 안에 있지 않습니다. –

+0

마스터 페이지를 사용하고 있습니까? 대부분의 기본 .aspx 페이지와 마스터 페이지는 '

'처럼 시작됩니다. 양식에 넣을 때 문제를 정확히 복제 할 수 있습니다. 양식 밖에서 잘 작동합니다. – MikeSmithDev

+0

또한 렌더링 된 HTML과 방화 광과 같은 요소를 검사 할 때 표시되는 것과 차이가 있음을 알 수 있습니다. – MikeSmithDev

관련 문제