Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create table dynamically in c#

Tags:

c#

asp.net

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

I have to create above table dynamically in c# I am trying but didnt get

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";
    }
}
like image 980
lax Avatar asked Oct 28 '12 06:10

lax


2 Answers

You can try this code to create table.

First place this markup in your aspx page like

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

Then Try This code in Page_Load like

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);
}

Or You can try this, by storing cell values in 2D Array like

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);
}
like image 117
Yograj Gupta Avatar answered Nov 07 '22 12:11

Yograj Gupta


I used this code to generate table dynamically in 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);

This generated the following image. enter image description here

like image 20
Badar Avatar answered Nov 07 '22 12:11

Badar