2011-08-02 29 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

威胁为每行添加单独的,你必须使用循环或什么.. –

相关问题