0

我的 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>";

现在我想根据文本框值动态地创建行和列。

例如,如果文本框值为 15,那么我想创建一个包含 3 列和 5 行的表。如果文本框值为 6,那么我想创建一个包含 3 列和 2 行的表。

我使用上面的代码创建了一个简单的 2 行和 5 列。

4

2 回答 2

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>";

谢谢。

于 2013-10-29T10:44:30.110 回答
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();

希望它会有所帮助。

于 2013-10-29T07:32:43.420 回答