1

私は5回実行されるwhileループを持っています:

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>
4

1 に答える 1

1

2 つの問題があります。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 標準である別のフォームを含めることはできません。

于 2013-10-03T14:18:59.850 に答える