5
<table id="tableContent" border="1" runat="server">
    <tr>
        <td colspan="3">
        Record 1
        </td>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
    </tr>
    <tr>
        <td>m</td>
        <td>n</td>
        <td>o</td>
    </tr>
    <tr>
        <td colspan="3">
            <input id="Button1" type="button" value="button" />
        </td>
    </tr>
</table>

我必须在 C# 中动态创建上表我正在尝试但没有得到

protected void Page_Load(object sender, EventArgs e)
{

    HtmlTableRow row = null;
    HtmlTableCell cell = null;

    for(int i = 0; i < 5; i++)
    {
        row = new HtmlTableRow();
        cell = new HtmlTableCell();
        tableContent.Controls.AddAt(i, row);
        row.Controls.AddAt(i, cell);
        cell.InnerText="1";
    }
}
4

3 回答 3

9

您可以尝试此代码来创建表。

首先将此标记放在您的 aspx 页面中,例如

<table id="tableContent" border="1" runat="server"></table>

然后在 Page_Load 中尝试此代码,例如

protected void Page_Load(object sender, EventArgs e)
{
    HtmlTableRow row = new HtmlTableRow();
    HtmlTableCell cell = new HtmlTableCell();

    cell.ColSpan =3;
    cell.InnerText = "Record 1";
    row.Cells.Add(cell);
    tableContent.Rows.Add(row);

    row = new HtmlTableRow();
    cell = new HtmlTableCell();

    cell.InnerText = "1";
    row.Cells.Add(cell);

    cell = new HtmlTableCell();
    cell.InnerText = "2";
    row.Cells.Add(cell);

    cell = new HtmlTableCell();
    cell.InnerText = "3";
    row.Cells.Add(cell);

    tableContent.Rows.Add(row);

    row = new HtmlTableRow();
    cell = new HtmlTableCell();

    cell.InnerText = "a";
    row.Cells.Add(cell);

    cell = new HtmlTableCell();
    cell.InnerText = "b";
    row.Cells.Add(cell);

    cell = new HtmlTableCell();
    cell.InnerText = "c";
    row.Cells.Add(cell);

    tableContent.Rows.Add(row);


    row = new HtmlTableRow();
    cell = new HtmlTableCell();
    cell.InnerText = "m";
    row.Cells.Add(cell);

    cell = new HtmlTableCell();
    cell.InnerText = "n";
    row.Cells.Add(cell);

    cell = new HtmlTableCell();
    cell.InnerText = "o";
    row.Cells.Add(cell);

    tableContent.Rows.Add(row);

    row = new HtmlTableRow();
    cell = new HtmlTableCell();

    HtmlInputButton input = new HtmlInputButton();
    input.ID = "Button1";
    input.Value = "button";

    cell.ColSpan = 3;
    cell.Controls.Add(input);
    row.Cells.Add(cell);
    tableContent.Rows.Add(row);
}

或者你可以试试这个,通过将单元格值存储在二维数组中,比如

protected void Page_Load(object sender, EventArgs e)
{
    String[,] cellValues = { { "1", "2", "3" }, { "a", "b", "c" }, { "m", "n", "o" } };

    HtmlTableRow row = new HtmlTableRow();
    HtmlTableCell cell = new HtmlTableCell();

    cell.ColSpan = 3;
    cell.InnerText = "Record 1";
    row.Cells.Add(cell);
    tableContent.Rows.Add(row);

    for (int i = 0; i < cellValues.GetLength(0); i++)
    {
        row = new HtmlTableRow();
        for (int j = 0; j < cellValues.GetLength(1); j++)
        {
            cell = new HtmlTableCell();
            cell.InnerText = cellValues[i, j];
            row.Cells.Add(cell);
        }
        tableContent.Rows.Add(row);
    }

    row = new HtmlTableRow();
    cell = new HtmlTableCell();

    HtmlInputButton input = new HtmlInputButton();
    input.ID = "Button1";
    input.Value = "button";

    cell.ColSpan = 3;
    cell.Controls.Add(input);
    row.Cells.Add(cell);
    tableContent.Rows.Add(row);
}
于 2012-10-28T07:41:57.860 回答
1

我使用此代码在 C# 中动态生成表。

string connectString = ConfigurationManager.ConnectionStrings["Sample4ConnectionString"].ToString();
        StudentsModelDataContext db = new StudentsModelDataContext(connectString);
        var studentList = db.Students;

        Table tb = new Table();
        tb.BorderWidth = 3;
        tb.BorderStyle = BorderStyle.Solid;
        tb.ID = "myTable";

        foreach (Student student in studentList)
        {
            TableRow tr = new TableRow();

            TableCell tc1 = new TableCell();
            TableCell tc2 = new TableCell();
            TableCell tc3 = new TableCell();
            TableCell tc4 = new TableCell();
            TableCell tc5 = new TableCell();

            tc1.Text = student.Name;
            tc1.BorderWidth = 2;
            tr.Cells.Add(tc1);

            tc2.Text = student.Email;
            tc2.BorderWidth = 2;
            tr.Cells.Add(tc2);

            tc3.Text = student.Gender;
            tc3.BorderWidth = 2;
            tr.Cells.Add(tc3);

            tc4.Text = student.BirthDate.ToString();
            tc4.BorderWidth = 2;
            tr.Cells.Add(tc4);

            tc5.Text = student.TotalMarks.ToString();
            tc5.BorderWidth = 2;
            tr.Cells.Add(tc5);

            tb.Rows.Add(tr);
        }
        form1.Controls.Add(tb);

这生成了以下图像。 在此处输入图像描述

于 2017-12-04T01:58:27.130 回答
-1
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim rows As Integer = TextBox1.Text
        Dim columns As Integer = TextBox2.Text

        Dim r As Integer
        Dim c As Integer

        Literal1.Text = "<table border=" & "1" & ">"
        For r = 1 To rows
            Literal1.Text &= "<tr>"
            For c = 1 To columns
                Literal1.Text &= "<td>"
                Literal1.Text &= "&nbsp"
                Literal1.Text &= "</td>"
            Next c
            Literal1.Text &= "</tr>"
        Next r
        Literal1.Text &= "</table>"
    End Sub
于 2016-10-24T12:05:52.493 回答