(高手帮忙,高分相赠)一个上关于RowFilter的问题
各位高手你们好:
近日做项目时发现了一个关于RowFilter的问题,举例说明:
1.有一已定义好的数据集比如:Session[ "dv "]中存储的是一个DataView数据集;
2.取得数据集
DataView dvFilter= (DataView)Session[ "dv "];
dvFilter.RowFilter = Session[ "FilterString "];
this.DataGrid1.DataSource = dvFilter;
this.DataGrid1.DataBind();
但在再次访问Session[ "dv "]中的数据集的时候得到的结果却是刚才被筛选后的结果.但是刚才筛选后的结果并未存入状态中.不知为何这样,请高手给予指教!!
------解决方案--------------------DataView本身就是以RowFilter来过滤并显示数据的,它的记录的多少和RowFilter是相关的.
你记录这个DataView不如只记录RowFilter,
如果你只想把过滤后的数据保存到一个变量中,那么你可以使用如下的方法来得到过滤后的数据,比如:
DataTable tmpTable = dataView.ToTable();这里按DataView中的显示的记录生成了一个新的表
这样你就可以得到只有过虑后的数据的.
------解决方案--------------------你如果使用的是VS2003,DataView没有ToTable这个方法,最冬日的做法就是直接对RowFilter这个字符串控制.
一个DataView实际上并不保存任何一行数据,它只是一个DataTable的"视图",它所显示出的数据正是在RowFilter的条件下在DataTable中的记录,而DataView只是一个定义上的概念!
------解决方案--------------------DataView dvFilter= (DataView)Session[ "dv "];
dvFilter就是Session[ "dv "]的引用,还用你保存吗?都是一个东西