2012-03-20 82 views

回答

0

在将数据加载到gridview之前,您可以翻转数据集。

private void BindData() 
{ 
    // Fill a dataTable with results 

    // Add the dataTable to a DataSet 
    DataSet ds = new DataSet(); 
    ds.Tables.Add(dt); 

    // Flip your dataSet 
    DataSet new_ds = FlipDataSet(ds); 
    new_ds.Tables[0].Rows[0].Delete(); 

    DataView my_DataView = new_ds.Tables[0].DefaultView; 
    gridView.DataSource = my_DataView; 
    gridView.DataBind(); 
} 

public DataSet FlipDataSet(DataSet my_DataSet) 
{ 
    DataSet ds = new DataSet(); 

    foreach(DataTable dt in my_DataSet.Tables) 
    { 
     DataTable table = new DataTable(); 

     for(int i=0; i<=dt.Rows.Count; i++) 
     { 
      table.Columns.Add(Convert.ToString(i)); 
     } 

     DataRow r; 

     for(int k=0; k<dt.Columns.Count; k++) 
     { 
      r = table.NewRow(); 
      r[0] = dt.Columns[k].ToString(); 

      for(int j=1; j<=dt.Rows.Count; j++) 
       r[j] = dt.Rows[j-1][k]; 

      table.Rows.Add(r); 
     } 

     ds.Tables.Add(table); 
    } 

    return ds; 
} 
+0

我的数据不预加载到数据集中,而是直接放到GridView控件从一个SqlDataSource见下文: – user1281748 2012-03-20 19:39:08

+0

@ user1281748你不能因为据我所知翻转使用的SqlDataSource或GridView的设置源。您可以将SQLDataSource的结果转换为DataSet,然后执行上面的操作。如果你需要一个如何获得一个SQLDataSource到一个dataTable的例子,请检查一下。 http://stackoverflow.com/questions/1532937/asp-net-c-sharp-put-round-sqldatasource-into-square-datatable-hole – 2012-03-20 19:47:31

+0

非常感谢您的帮助! – user1281748 2012-03-20 19:51:00