我对筛选过的datagridview 内容进行二次,三次,··多才筛选。DataView dv = new DataView(yiqiDataSet.db_zonghe);
dv.RowFilter = string.Format("zhzubie like '%{0}%'", txt_chaxun.Text);
this.dataGridView1.DataSource = dv;yiqiDataSet.db_zonghe是第一次筛选的结果,这次筛选为数据库筛选,也就是在dataset中的筛选,结果存入了yiqiDataSet.db_zonghe中。第二次筛选为上面的筛选语句。是对yiqiDataSet.db_zonghe的视图dataview进行筛选。但是,结果输出到datagridview中去。然后再进行第三次 ,第四次··筛选的时候,都是对第一次筛选结果的视图进行筛选。并没有根据前一次的结果进行筛选。我觉得,可能有一种方法获取,当前datagirdvview的视图dataview。这样 第二次 第三次····筛选直接对前一次的视图进行筛选就行了。但是我不知道方法。下面两种方法我已经否决了,希望大家给点帮助。最好是给出代码。谢谢谢谢。方法一:对datagridview的内容提取出来重新输入新定义的内存的表里面,每次筛选对此表进行筛选。这个方法不可行,因为这样会影响我对datagridview单元格修改时与数据库的同步关系。
方法二:强制转换类型,比如:
DataTable dt2 = this.dataGridView1.DataSource as DataTable;或
DataView dv = this.dataGridView1.DataSource as DataView;或
DataView dv = (dataGridView1.DataSource as BindingSource).Current as DataView;每次断点的时候 dt2,dv dv的值 都是空的,但是 this.dataGridView1.DataSource的值却是非空的···我问了很久了,没人回答,我是菜鸟,可能有些问题大家说对了,我没理解了。就只有60分,全拿出来。希望大家多多关照。。静候答案··
了。

解决方案 »

  1.   

    foreach (dataview a in datagridview)
      

  2.   

    方法一:
    DataTable table = (DataTable)dataGridView1.DataSource;
    table.DefaultView.RowFilter += 其他条件;
    dataGridView1.DataSource = table;
    方法二:
    定义局部变量记录过滤条件
    private string rowFilter = string.Empty;每次修改过滤条件
    rowFilter += 新过滤条件重新设置数据源
    DataView dv = new DataView(yiqiDataSet.db_zonghe);
    dv.RowFilter = rowFilter;
    this.dataGridView1.DataSource = dv;
      

  3.   


    DataTable table = (DataTable)dataGridView1.DataSource; 提示:无法将类型为“System.Windows.Forms.BindingSource”的对象强制转换为类型“System.Data.DataTable”。
    强制转换 不行啊。我的是2.0平台