我的aspx页面上有文本框和按钮。
现在我想在按钮点击事件上创建一个html表作为字符串。我完成了这项任务。请看下面的代码:
string stsrtest = "test";
string nWidth="150px";
string strHtml = "<table><tr><td width= '" + nWidth + "'> Authorized By</td><td>Employee </td><td>Status</td><td>Date </td><td>Note</td><td>Signutare</td></tr>";
strHtml += "<tr><td> " + stsrtest + "</td><td> " + stsrtest + "</td><td> " + stsrtest + "</td><td> " + stsrtest + "</td><td> " + stsrtest + "</td><td>test</td></tr>";
strHtml += "</table>";
现在我想基于文本框值来创建行和列。
例如,如果textbox值为15,那么我想创建一个包含3列和5行的表。 如果文本框值为6,那么我想创建一个包含3列和2行的表。
我使用上面的代码创建了一个简单的2行和5列。
答案 0 :(得分:1)
我使用以下代码解决了这个问题:
int nTotal = Convert.ToInt32(txtCell.Text);
int nRows = 0;
int nLast = nTotal % 3;
nRows = nTotal / 3;
string strHmtl = "<table border='1px' cellspacing='0' cellpadding='0' style='height: 28px; width: 647px;' >";
for (int i = 0; i < nTotal - nTotal % 3; i++)
{
if (i == 0 || i % 3 == 0)
strHmtl += "<tr>";
strHmtl += "<td></td>";
if (i % 3 == 2)
strHmtl += "</tr>";
}
if (nTotal % 3 != 0)
{
strHmtl += "<tr>";
if (nLast == 1)
strHmtl += "<td> </td>";
else
{
strHmtl += "<td> </td>";
strHmtl += "<td> </td>";
}
strHmtl += "</tr>";
}
strHmtl += "</table>";
感谢。
答案 1 :(得分:0)
您可以通过设置列数并为每行循环将其构建为字符串来动态构建表。看一下这个例子:
StringBuilder l_strBuilder= new StringBuilder();
l_strBuilder.AppendLine("<table">");
l_strBuilder.AppendLine("<tr>");
l_strBuilder.AppendLine("<th>Authorized By</th>");
l_strBuilder.AppendLine("<th>Employee</th>");
l_strBuilder.AppendLine("<th>Status</th>");
l_strBuilder.AppendLine("<th>Date</th>");
l_strBuilder.AppendLine("<th>Note</th>");
l_strBuilder.AppendLine("<th>Signutare</th>");
l_strBuilder.AppendLine("</tr>");
for (int i = 0; i < ROWSNUMBER; i++)
{
l_strBuilder.AppendLine("<tr>");
l_strBuilder.AppendLine("<td>column 1 data</td>");
l_strBuilder.AppendLine("<td>column 2 data</td>");
l_strBuilder.AppendLine("<td>column 3 data</td>");
l_strBuilder.AppendLine("<td>column 4 data</td>");
l_strBuilder.AppendLine("<td>column 5 data</td>");
l_strBuilder.AppendLine("<td>column 6 data</td>");
l_strBuilder.AppendLine("</tr>");
}
l_strBuilder.AppendLine("</table>");
构建表格后,您可以使用asp文字obj将表格放入页面。
<asp:Literal ID="ltrDynTable" runat="server" />
用这种方式填充你的字符串:
ltrDynTable.Text = l_strBuilder.ToString();
希望它会有所帮助。