2009-12-14 55 views
0

我有一个gridview有很多列..这些列是分开得到并显示在一个gridview。如何在获取gridview后填充数据集?

现在我需要排序这个gridview,但我不能这样做....我已经找到了一种方法,但我将需要获取数据表或数据集中的gridview ....是否有一种方法可以做到这一点?

DataSet ds= new DataSet(); 
ds = Gridview1.???? 

请帮助..

回答

0

一种方式做,这将是使用的DataGridView和使用此控件的数据源财产

OleDbConnection conn = new OleDbConnection(connection); 

OleDbDataAdapter adapter = new OleDbDataAdapter(); 
adapter.SelectCommand = new OleDbCommand("select * from my_table", conn); 
DataSet dataset = new DataSet(); 

// fill the data set using the query defined in the adapter 
adapter.Fill(dataset); 

// fill the grid with the data set 
DataGridView1.DataSource = dataset.Tables[0]; 
0

您可以创建一个用于表示表中每一行的新类,并绑定到该类的对象列表。然后要修复排序,可以将数据源包装在SortableBindingList中。您可以使用这些文件PropertyComparer.cs和SortableBindingList.cs从这个zip file,并使用它像这样:

gridView1.DataSource = new SortableBindingList<cLineItem>(list); 

我曾与一个DataGridView测试这一点。我认为它也适用于GridView。

0

你如何在ASPX中使用SqlDataSource(或类似的)或使用.cs代码隐藏代码填充GridView?

如果你知道确切的化妆,但这并不好玩,就可以遍历子控件和投射对象。如果在将数据绑定到更典型的GridView之前有任何方法复制数据。

0

我会创建一个共享方法或甚至一个类(取决于你需要这种功能的频率),负责接收一组数据集合(然而你正在检索这些数据列)并编译它变成一个连贯的类型数据表。这将添加您将获得的所有内置排序功能,并且还会为您提供为整个数据提供单一编译源的功能。然后,您可以使用DefaultView对数据进行排序/混合/过滤,而不会影响其原始性质。