Конечно, есть много способов добраться до этого, но вот один (возможно, не самый лучший, но в любом случае субъективный):
Предполагая веб-формы на C # и ADO.Net, и предполагая, что вынужно точно этого HTML, вы можете циклически перебирать строки в DataSet и выводить HTML.
DataSet ds = {data set from your sql}
StringBuilder html = new StringBuilder();
foreach (DataRow row in DataSet.Tables[0].Rows) {
html.Append( string.Format(@"<div class=""scrollRow"">
<table width=""100%"">
<tr>
<td width=""25%"">Site name: <b>{0}</b></td>
<td>Created on {1}</td>
<td align="right"><button onclick="doRevert(1)">Revert to this</button></td>
</tr>
</table>",row["sitename"], row["createdate"]));
}
Вы можете включить HTML, имея <asp:Literal>
в коде страницы иустановка свойства Text.
Вы также можете сделать это, создав узлы System.Web.UI.WebControls.Table в коде и добавив к ним TableRows и TableCells, используя тот же цикл, а затем добавив их встраница с помощью.Учитывая то, что вы дали нам до сих пор, вы, кажется, добавляете элементы управления на страницу с MasterPage, поэтому вам нужно будет добавить свои таблицы в ContentPlaceHolder мастера, который вы можете найти и добавить элементы управления так:
ContentPlaceHolder ph = (ContentPlaceHolder)this.Master.FindControl( "ContentPlaceHolder1" );
foreach (DataRow row in DataSet.Tables[0].Rows) {
Panel pnl = new Panel();
Table tbl = new Table();
TableRow tblrow = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = string.Format("Site name: <b>{0}</b>",row["sitename"]);
row.Cells.Add(cell1);
tbl.Rows.Add(tblrow);
pnl.Controls.Add(tbl);
ph.Controls.Add(pnl);
}
Вы можете установить свойства для TableRows и TableCells, но если вы сделаете это таким образом, вы потеряете некоторый контроль над генерируемым html, в частности, за атрибутами html ID.Вы, кажется, не используете их, так что, возможно, это нормально.