c#如何动态创建表
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13106967/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to create table dynamically in c#
提问by lax
<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
我必须在 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";
}
}
采纳答案by Yograj Gupta
You can try this code to create table.
您可以尝试使用此代码来创建表。
First place this markup in your aspx page like
首先将此标记放在您的 aspx 页面中,例如
<table id="tableContent" border="1" runat="server"></table>
Then Try This code in Page_Load like
然后在 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);
}
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);
}
回答by jules
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 &= " "
Literal1.Text &= "</td>"
Next c
Literal1.Text &= "</tr>"
Next r
Literal1.Text &= "</table>"
End Sub
回答by Badar
I used this code to generate table dynamically in C#.
我使用此代码在 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);


