2012-10-28 21 views
4
<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# 我試圖動態地創建上面的表格,但沒有得到如何動態地創建表在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"; 
    } 
} 
+0

哪部分你有問題? – manman

+0

你有沒有嘗試過一個div,然後將相應的td tr作爲字符串添加到它的內聯文字 – pordi

+0

,你必須告訴需求或預期的輸出。這裏沒有列出目的。例如,我可以告訴你只是做Response.Write(yourtablestr);它在技術上將是動態的。 –

回答

7

你可以試試這個代碼來創建表。

第一名此標記在你的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); 
} 

或者你可以試試這個,而在2D陣列中存儲單元格值一樣

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

請添加explantaion,爲什麼以及您的代碼如何幫助。您可以通過點擊帖子下方的edil鏈接來完成此操作。 – reporter

0

我用t他的代碼在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); 

這產生了下面的圖像。 enter image description here