【问题标题】:How to fill a dataset after getting a gridview?获取gridview后如何填充数据集?
【发布时间】:2010-12-26 15:09:40
【问题描述】:

我有一个 gridview,它有很多列。这些列是单独获取并显示在 gridview 中的。

现在我需要对这个 gridview 进行排序,但我不能这样做....我找到了一种方法,但我需要在数据表或数据集中获取 gridview....有没有办法做到这一点?

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

请帮忙..

【问题讨论】:

    标签: c# asp.net gridview sorting dataset


    【解决方案1】:

    一种方法是使用 DataGridView 并使用该控件的 DataSource 属性:

    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];
    

    【讨论】:

      【解决方案2】:

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

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

      我已经使用 DataGridView 对此进行了测试。我认为它也适用于 GridView。

      【讨论】:

        【解决方案3】:

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

        如果您知道确切的构成,则可以遍历子控件并投射对象,但这并不有趣。如果有任何方法可以在将数据绑定到 GridView 之前复制数据,那就更典型了。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多