如:条件设置为: [审核] is null 。一旦实现在datalist左边的显示复选框中打勾,并在 绑定表("审核") =true 后,这条记录就会立即从datalist中清除掉,不够理想。
要能用代码在窗口afterload中加载符合: [审核] is null 记录就好了。下面代码会加载flxsb表中全部记录:
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
Dim drs As List(Of Datarow)
dst.DataTable = DataTables("flxsb").Select("[审核人] is null")
(这里是否缺少的什么?)
dst.Build()
请帮助我啊~ 谢谢!!
虽然可以在代码中设计
RowFilter属性,但其效果和事先设定完全是一样的。
象你这种要求,个人认为解决办法是,打开窗口时执行加载符合条件的数据,如
DataTables("flxsb").LoadFilter = "[审核] = False"
DataTables("flxsb").Load()
如果有关闭窗口按钮,可以加上下面的代码
DataTables("订flxsb").LoadFilter = "true"
DataTables("flxsb").Load()
也可以加一个显示按钮,如
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
DataTables("flxsb").LoadFilter = "true"
DataTables("flxsb").Load()
dst.Build()
[此贴子已经被作者于2009-3-20 20:15:46编辑过]
czy版主2楼的代码可以,但是flxsb表中的记录太多时,速度特慢,比datalest属性中条件设置为: [审核] is null (瞬间完成)慢得太多了!~ 如果没有其他好方法,只好今后学习进度条时,加个显示进度条的窗口了。
而且,关闭按钮时,也很慢!~ 因为flxsb表中记录还要被主窗口调用,
如果不显示flxsb表中的所有行,就无法调用相关的记录了。 (也就时说datalist中未被筛选到的flxsb表中记录都隐藏了,
而隐藏行是不能被调用的-不知对不?反正我调用其他记录时,隐藏的行是调不出来的)
[此贴子已经被作者于2009-3-20 22:07:54编辑过]
楼上理解的没错。
[此贴子已经被作者于2009-3-20 23:25:03编辑过]
以下是引用czy在2009-3-20 23:57:00的发言:
暂时这样解决下。
谢谢了~ 我增加到24000多行,只要7、8秒时间就可筛选出来,还不错。
另外:我试了试做一个结构一样的表过渡进行筛选,再通过一些代码使在datalist的复选框中打勾后返回到原表,使 审核=true ,这样筛选速度明显提高,1秒就可以筛选完,只是打勾的时候稍微有点卡,但能接受!~
再次谢谢czy版主!~
czy提供的例子中,一旦原表中或datalist中有排序动作,就可能出现错误提示!!!有代码静止原表或datalist的排序吗?
明天来看啦,休息~~
[此贴子已经被作者于2009-3-21 1:10:26编辑过]