Создание asp: Table из серверной части c# asp.net webform

По какой-то причине мой код не отображается как обычная таблица, он просто выводит блок текста.

Вот код, который я написал в серверной части для создания моей таблицы:

    protected void LoadData(object sender, ImageClickEventArgs e)
    {
        //Populating a DataTable from database.
        DataTable dt = this.GetData();

        //Building an HTML string.
        StringBuilder html = new StringBuilder();

        //Table start.
        html.Append("<asp:Table ID="Table2" runat="Server" CellPadding="2" CellSpacing="1" BorderColor = "CadetBlue" BorderWidth = "1" BorderStyle = "Dashed" >");

        //Building the Data rows.
        foreach (DataRow row in dt.Rows)
        {
            html.Append("<asp:TableRow runat="Server" BorderWidth="1">");
            foreach (DataColumn column in dt.Columns)
            {
                html.Append("<asp:TableCell runat="Server" BorderWidth="1">");
                html.Append(row[column.ColumnName]);
                html.Append("</asp:TableCell>");
            }
            html.Append("</asp:TableRow>");
        }

        //Table end.
        html.Append("</asp:Table>");

        //Append the HTML string to Placeholder.
        PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
    }

Это пример получения im вывода:

Yamaha XTZ 650) N/Yamaha TRXBentley H-SectionBentley I-SectionBMW SPFord 5.23 NarrowFord 6.173 NarrowSuzuki GSX-R 750Non-Split I-SectionNissan GTR6Peugeot 1.9 Vauxhall CorsaFerrariBMW SPFord SPTR3 SPTR6 SPSteyr PuchClimax WLKHealey 3000Vauxhall SPRS2000Peugeot/BMWPeugeot 5/16MGB 1800Peugeot 3/8f3 Ext. 5 / 16BLSFord CVH 1600F3 5/16F3 5/16Ford Zetec Bushed S / EFord 5.65 NarrowPeugeot SPFord Zetec SPVolvo SPVolvo SPBMW SPPeugeotFord 5.4 SPOpel 2.3 DAlfa Romeo V6LagondaVauxhall Ext.Ford 5.4 NarrowFord 5.0 NarrowFord 4.926 WideHonda CRXPeugeot 5/16 SPMini Cooper Ext.Lagonda Ext.Audi 5CylPeugeot SPF3Unknown V6Mountune SpecialTriumph SPVauxhall Corsa Ext.Ford Cosworth SierraF3Ford узкий SPRS2000 SPCosworth

Я просто хочу, чтобы он вышел в виде таблицы«

1 ответ

  1. Вот хороший пример для вас : ( https://forums.asp.net/t/1797172.aspx?How+to + create+table + динамически+in+asp + net)

    Сначала поместите элемент управления asp: Literal на страницу, где вы хотите показать свою таблицу, как показано ниже

        <asp:Literal ID="litTable" runat="server" />
    

    Теперь в вашем событии, где данные извлекаются, напишите приведенный ниже код, чтобы зациклить источник данных и построить таблицу

        StringBuilder htmlTable = new StringBuilder();
        htmlTable .AppendLine("<table">");
        htmlTableString.AppendLine("<tr>");
        htmlTableString.AppendLine("<th>colum 1</th>");
        htmlTableString.AppendLine("<th>colum 2</th>");
        htmlTableString.AppendLine("<th>colum 3</th>");
        htmlTableString.AppendLine("</tr>");
    

    / Поместите петлю for здесь и повторите приведенный ниже код/

        htmlTableString.AppendLine("<tr>");
        htmlTableString.AppendLine("<td>colum 1 data</td>");
        htmlTableString.AppendLine("<td>colum 2 data</td>");
        htmlTableString.AppendLine("<td>colum 3 data</td>");
        htmlTableString.AppendLine("</tr>");
    

    / Конец для петли/

        htmlTableString.AppendLine("</table>");
        litTable.Text = htmlTableString.ToString();
    

    Это создаст строку HTML и назначит вам литерал, вот и все!