根据文本框值创建html表作为字符串

时间:2013-10-29 07:02:17

标签: asp.net c#-4.0 c#-3.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>";

现在我想基于文本框值来创建行和列。

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

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

2 个答案:

答案 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();

希望它会有所帮助。