比如说定义一个dataview dv后,假设开始的数据集为A,对它进行筛选dv.RowFilter后,得到的数据集是B,现在我想在B的基础上进行第二次筛选,得到数据集C。但是后来发现如果第二次还是用dv.RowFilter,得到的结果只是在A上的筛选,而不是B。 
是不是第一筛选掉的记录集只是隐藏起来而已,并没有真正的筛除,所以导致第二次的筛选还是建立在记录集A上。 
呵呵~~~请教请教,我真的很不懂,请问有什么解决办法啊?

解决方案 »

  1.   

    我认为:
    重新绑定B到dv上,再进行筛选,可行吗?
      

  2.   

    请问如何绑定啊??难道要定义一个新的dataview吗??
      

  3.   

    第一次在dv.RowFilter后把结果赋给一变量B
    然后再在B上进行筛选试试
      

  4.   

    在每次要进行筛选的时候,获得一下当前datagridview的datasource,在新的datasource上再进行筛选,再将结果赋值给datagridview的datasource
      

  5.   

    其实比较简单了 想的太复杂了
    如果想在A 基础上用RowFiter 就在用条件的时候 and 一下筛选 A的条件就可以了 DataView dv = dt.DefaultView;
     dv.RowFilter = "dbName like '%jx%'" A数据视图
    在A的视图里重新筛选
    dv.RowFilter ="dbName like '%jx%' and 新条件"
      

  6.   

    重绑写。
    A-》B重绑一次
    那从B-C应该会是从B啦