2011-06-07 230 views
1
 conn.Open(); 

     TableRow r = new TableRow(); 
     TableCell c = new TableCell(); 

     SqlDataReader reader = comm.ExecuteReader(); 


      while (reader.Read()) 
     { 
       c.Controls.Add(new LiteralControl(reader["Name"].ToString())); 
       r.Cells.Add(c); 
       Table1.Rows.Add(r); 

       c.Controls.Add(new LiteralControl(reader["RollID"].ToString())); 
       r.Cells.Add(c); 
       Table1.Rows.Add(r); 
     } 

我使用上面的代碼在table.But中打印數據。但所有字段都在單行(行不遞增)。可以告訴我如何顯示在多行中。在asp.net中的表中顯示記錄

回答

0

目前,您正在創建單行和單元格,並將所有控件添加到該單元格。

雖然你想要的是肯定可能的(只要確保你爲讀出的每個數據元素創建一個新的單元格,並通過while循環爲每個迭代創建一個新行),是不是有一個原因,你沒有使用類似GridView的內容來呈現此內容?

+0

是的,我沒有使用GridView的,因爲我想在每一個row.But我的rightnost電池使用下拉列表因此,試圖使用表而不是 – Rohith 2011-06-07 14:20:55

+0

你可以請幫助我如何打印表格單元格中的下拉列表在這裏。 – Rohith 2011-06-07 14:21:30

+0

您可以利用'GridView'中的['TemplateField'](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.aspx)列來實現此目的。有一個相當不錯的教程[這裏](http://msdn.microsoft.com/en-us/library/bb288032.aspx)。 – 2011-06-07 14:25:16

0

爲每一行創建一個新的TableRow實例。您只需在遍歷結果集之前創建1個實例。

0

將您的TableCell和TableRow變量的結構移動到WHILE循環的頂部。通過這種方式,您將獲得閱讀器中每個記錄的新行和新單元格。

考慮代碼如下所示(的評論是我的):

conn.Open(); 

    // MOVE THESE 
    /** 
    TableRow r = new TableRow(); 
    TableCell c = new TableCell(); 
    **/ 

    SqlDataReader reader = comm.ExecuteReader(); 


     while (reader.Read()) 
    { 

      // TO HERE.. so that a new row and cell are created for each record in your reader 
      TableRow r = new TableRow(); 
      TableCell c = new TableCell(); 

      c.Controls.Add(new LiteralControl(reader["Name"].ToString())); 
      r.Cells.Add(c); 
      //Table1.Rows.Add(r); -- ADD THE ROW AFTER THE SECOND FIELD... THEN YOU HAVE 2 COLUMNS 

      c.Controls.Add(new LiteralControl(reader["RollID"].ToString())); 
      c = new TableCell(); // CREATE A NEW CELL, FOR A NEW COLUMN 
      r.Cells.Add(c); 
      Table1.Rows.Add(r); 
    } 
相關問題