2011-08-02 30 views
1

夠簡單。不能找到簡單的解決方案。不知道他們是一個簡單的解決方案? :/將DataRow轉換爲TableRow

我有一個dataTable。我基本上要達到這個...

DataTable dt = new DataTable(); 
dataAdapter.Fill(dt); 

TableRow tr = new TableRow(); 
tr = dt.Rows[0]; 

,但我不能從DataRow中轉換成的TableRow!

幫助!

Alex

+0

什麼是你想達到什麼目的? –

+1

我試圖從一個DataRow對象獲取數據,並將其放入一個TableRow對象 –

回答

1

如果您的目標是在UI上顯示dataTable(或任何其他數據源)內的數據,爲什麼不使用中繼器?

無論如何,你不能只將DataTableRow轉換爲TableRow,但你必須自己動手。 看看下面的代碼

private void GenerateTable() 

    { 

     DataTable dt = CreateDataTable(); 

     Table table = new Table(); 

     TableRow row = null; 



     //Add the Headers 

     row = new TableRow(); 

     for (int j = 0; j < dt.Columns.Count; j++) 

     { 

      TableHeaderCell headerCell = new TableHeaderCell(); 

      headerCell.Text = dt.Columns[j].ColumnName; 

      row.Cells.Add(headerCell); 

     } 

     table.Rows.Add(row); 



     //Add the Column values 

     for (int i = 0; i < dt.Rows.Count; i++) 

     { 

      row = new TableRow(); 

      for (int j = 0; j < dt.Columns.Count; j++) 

      { 

       TableCell cell = new TableCell(); 

       cell.Text = dt.Rows[i][j].ToString(); 

       row.Cells.Add(cell); 

      } 

      // Add the TableRow to the Table 

      table.Rows.Add(row); 

     } 

     // Add the the Table in the Form 

     form1.Controls.Add(table); 

    } 

來源:

http://geekswithblogs.net/dotNETvinz/archive/2009/06/24/fill-asp.net-table-with-data-from-datatable.aspx

+0

我試圖做懶惰的方式,但看起來不舒服必須這樣做。乾杯兄弟x –

+0

如果您使用中繼器,而不是您可以直接將DataBind DataBind綁定到中繼器本身,則不需付出任何努力。中繼器將呈現爲經典的HTML表格。 –

3

TableRow是一個UI元素,它表示一個表控件中的一行)。 DataRow是一個數據元素,它表示DataTable中的一行數據。你不能像這樣在兩者之間轉換,因爲它們只是不同的野獸。

如果您正在使用UI,那麼您應該將Table控件綁定到DataTable。然後你可以拉出單獨的TableRow對象。

你想做什麼?

1

你可以用這個

TableRow tr = new TableRow();

tr .Cells(0).Text = dt.Rows[0][0]; 

因爲TabeRow有這麼多的單元格,您必須指定單元格。沒有方法將整個數據行添加到TableRow中都是不同的。

+0

威脅爲每行添加單獨的,你必須使用循環或什麼.. –

相關問題