C# 使 HTML Table 重复行
C# Make HTML Table repeating rows
我有这个 HTML table:
<table ID="tbl_ClientSearch" style="width: 83%;" runat="server">
<thead>
<tr>
<td>Client Account Number</td>
<td>Client Name</td>
</tr>
</thead>
<tbody>
<tr>
<td><asp:Literal ID="CliNox" runat="server"></asp:Literal></td>
<td><asp:Literal ID="CliNamex" runat="server"></asp:Literal></td>
</tr>
</tbody>
</table>
然后我有这个查询:
SqlCommand command = new SqlCommand(@"EXEC [dbo].[CTLC_SearchClient] '" + SearchVal + "';");
SqlConnection conn = new SqlConnection(connString);
conn.Open();
command.Connection = conn;
SqlDataReader readers = command.ExecuteReader();
if (readers.HasRows)
{
while (readers.Read())
{
string CliNo = readers.GetString(0);
string CliName = readers.GetString(1);
CliNox.Text = string.Format("<a href='ClientInfo.aspx?ClientNumber={0}'>{0}</a>", CliNo.ToString());
CliNamex.Text = CliName.ToString();
}
conn.Close();
}
这行得通,但是当我需要 return 多行时,这只有 return 1 行,因为我只为 table 正文声明了 1 行。我该如何解决这个问题?提前谢谢你。
我不熟悉 asp.net,但是这种情况看起来类似于 php 中可能发生的情况,在这种情况下,我会尝试在 [=] 中生成整个 table 15=]。类似于
for row in tables
append to html <tr><td>data</td><td>moredata</td></tr>
insert html into <table></table>
在 Aspx 页面中,除了 table 之外添加占位符,如下所示。
<asp:PlaceHolder ID = "tableClientSearch" runat="server"/>
在 Aspx.cs 文件中。
StringBuilder html = new StringBuilder();
html.Append("<table border = '1'><thead><tr><td>Client Account
Number</td><td>Client Name</td></tr></thead>");
SqlCommand command = new SqlCommand(@"EXEC [dbo].[CTLC_SearchClient] '" + SearchVal + "';");
SqlConnection conn = new SqlConnection(connString);
conn.Open();
command.Connection = conn;
SqlDataReader readers = command.ExecuteReader();
if (readers.HasRows)
{
while (readers.Read())
{
html.Append("<tr>");
html.Append("<td>");
html.AppendFormat("<a href='ClientInfo.aspx?ClientNumber={0}'>{0}</a>", readers.GetString(0));
html.Append("</td>");
html.Append("<td>");
html.Append(readers.GetString(1));
html.Append("</td>");
html.Append("</tr>");
}
conn.Close();
}
html.Append("</table>");
tableClientSearch.Controls.Add(new Literal { Text = html.ToString() });
删除 aspx.cs 文件中 class 级别的受保护 table
protected DataTable dt = new DataTable()
从 sql 查询(通过使用 DataAdapter)中填充此数据 table,我猜你知道怎么做,或者只是 google 它。
在 aspx 中,替换
<tr>
<td><asp:Literal ID="CliNox" runat="server"></asp:Literal></td>
<td><asp:Literal ID="CliNamex" runat="server"></asp:Literal></td>
</tr>
来自
foreach (DataRow dr in dt)
{
<tr>
<td><%= dr["columnName1"] %></td>
<td><%= dr["columnName2"] %></td>
</tr>
}
我有这个 HTML table:
<table ID="tbl_ClientSearch" style="width: 83%;" runat="server">
<thead>
<tr>
<td>Client Account Number</td>
<td>Client Name</td>
</tr>
</thead>
<tbody>
<tr>
<td><asp:Literal ID="CliNox" runat="server"></asp:Literal></td>
<td><asp:Literal ID="CliNamex" runat="server"></asp:Literal></td>
</tr>
</tbody>
</table>
然后我有这个查询:
SqlCommand command = new SqlCommand(@"EXEC [dbo].[CTLC_SearchClient] '" + SearchVal + "';");
SqlConnection conn = new SqlConnection(connString);
conn.Open();
command.Connection = conn;
SqlDataReader readers = command.ExecuteReader();
if (readers.HasRows)
{
while (readers.Read())
{
string CliNo = readers.GetString(0);
string CliName = readers.GetString(1);
CliNox.Text = string.Format("<a href='ClientInfo.aspx?ClientNumber={0}'>{0}</a>", CliNo.ToString());
CliNamex.Text = CliName.ToString();
}
conn.Close();
}
这行得通,但是当我需要 return 多行时,这只有 return 1 行,因为我只为 table 正文声明了 1 行。我该如何解决这个问题?提前谢谢你。
我不熟悉 asp.net,但是这种情况看起来类似于 php 中可能发生的情况,在这种情况下,我会尝试在 [=] 中生成整个 table 15=]。类似于
for row in tables
append to html <tr><td>data</td><td>moredata</td></tr>
insert html into <table></table>
在 Aspx 页面中,除了 table 之外添加占位符,如下所示。
<asp:PlaceHolder ID = "tableClientSearch" runat="server"/>
在 Aspx.cs 文件中。
StringBuilder html = new StringBuilder();
html.Append("<table border = '1'><thead><tr><td>Client Account
Number</td><td>Client Name</td></tr></thead>");
SqlCommand command = new SqlCommand(@"EXEC [dbo].[CTLC_SearchClient] '" + SearchVal + "';");
SqlConnection conn = new SqlConnection(connString);
conn.Open();
command.Connection = conn;
SqlDataReader readers = command.ExecuteReader();
if (readers.HasRows)
{
while (readers.Read())
{
html.Append("<tr>");
html.Append("<td>");
html.AppendFormat("<a href='ClientInfo.aspx?ClientNumber={0}'>{0}</a>", readers.GetString(0));
html.Append("</td>");
html.Append("<td>");
html.Append(readers.GetString(1));
html.Append("</td>");
html.Append("</tr>");
}
conn.Close();
}
html.Append("</table>");
tableClientSearch.Controls.Add(new Literal { Text = html.ToString() });
删除 aspx.cs 文件中 class 级别的受保护 table
protected DataTable dt = new DataTable()
从 sql 查询(通过使用 DataAdapter)中填充此数据 table,我猜你知道怎么做,或者只是 google 它。
在 aspx 中,替换
<tr>
<td><asp:Literal ID="CliNox" runat="server"></asp:Literal></td>
<td><asp:Literal ID="CliNamex" runat="server"></asp:Literal></td>
</tr>
来自
foreach (DataRow dr in dt)
{
<tr>
<td><%= dr["columnName1"] %></td>
<td><%= dr["columnName2"] %></td>
</tr>
}