问题是这样的撒....我现在要做的项目呢..他的数据量灰常的大..可能一个DGV要显示10W数据.也不夸张....无奈之下..(当然让他自己去加载10W.开国际玩笑呢) 我手动模仿滚动条. 用滚动条控件...但是不给劲啊....
滚动条控件之外.我还得模仿鼠标滚轮..这些我都做完拉....不给力在哪里呢...不给力在.我模仿的这个东西他有时候会不即时(因为先滚动了这边的滚动条控件.我再去把DGV 的ROW清空.再添加)
我想问的问题呢..就是. 有木有什么办法.让我控制这DGV的滚动条重写这个控件啊..什么的.都不是问题.问题是我没有这个经验.我应该如何重载.重载什么东西..我看过.貌似DGV自带的滚动条他不允许重载.或者是我没找到..我必须得控制到DGV它自带滚动条的大小..获取他的所在位置.就是他的VALUE. 然后获取他的SCROLL事件.动态去加载数据..谁有经验.能说下..很急..谢谢了
滚动条控件之外.我还得模仿鼠标滚轮..这些我都做完拉....不给力在哪里呢...不给力在.我模仿的这个东西他有时候会不即时(因为先滚动了这边的滚动条控件.我再去把DGV 的ROW清空.再添加)
我想问的问题呢..就是. 有木有什么办法.让我控制这DGV的滚动条重写这个控件啊..什么的.都不是问题.问题是我没有这个经验.我应该如何重载.重载什么东西..我看过.貌似DGV自带的滚动条他不允许重载.或者是我没找到..我必须得控制到DGV它自带滚动条的大小..获取他的所在位置.就是他的VALUE. 然后获取他的SCROLL事件.动态去加载数据..谁有经验.能说下..很急..谢谢了
每页显示固定的数目,winform也是
你的滚动条问题就消失了
http://www.cnblogs.com/qingteng1983/archive/2010/05/09/1730905.html
@PageSize int, --每页显示条数
@PageIndex int, --当前是第几页
@totalRows int output, --总行数
@totalPages int output --总页数
as
declare @startId int
declare @endId int
set @startId = @PageSize*(@PageIndex-1)+1
set @endId = @startId+@PageSize-1
select @totalRows=COUNT(*) from Books
set @totalPages=@totalRows/@PageSize
if(@totalRows%@PageSize != 0) --如果总行数除每页显示数据量的值不等于0,则总页数得加1
begin
set @totalPages=@totalPages+1
end
declare @IndexTable table(Id int identity(1,1) ,nId int)
insert into @IndexTable select Id from Books
select * from @IndexTable as t ,Books as b where t.Id>=@startId and t.Id<=@endId and t.nId=b.Id
go
declare @tr int --总行数
declare @tp int --总页数
exec PageNum 4,2,@tr output ,@tp output
print '这是总页数'+convert(varchar,@tp) --数据转换
print @tr
只要更改了DGV的CurrentCell属性(必须较之前有所变化),DGV的滚动条就会自动滚动,使当前的数据行得以呈现,相当于间接控制了滚动条
用户自己拉滚动条去找是的。
说的是10W条.但是仅仅加载20条.就是我用DGV的DEFAULTROW.HEIGHT 与DGV.HEIGHT算出来当前页面会显示几行数据.然后动态去查询仅仅数十条数据显示
所谓的10W条.是总数据量.但问题是我必须让DGV的SCROLLBAR显示有10W数据.
客户拖动滚动条.判断SCROLLBAR.TYPE是否为ENDSCROLL 然后判断SCROLL.VALUE.得到当前数据的位置. 查询数据库 得到当前页的几十条数据..
现在大家清楚了么?我已经用SCROLLBAR控件成功模仿此做法.30W数据加载很随意....(听懂的人立马知道.10000W都随意)但是该做法会有延迟.我想知道DGV的自带SCROLLBAR是否能够控制.如果能!.就成了!加载1E我都敢做!
顶多只能瞬间查询100撑死...做个数据缓存之类的..其实我的方法就是动态分页.
只是我想控制到DGV自带的SCROLLBAR而已.我用SCROLLBAR已经模仿到了上下页按钮首页末页等..
你的SCROLLBAR建立10W数据的滚动量,然后动态计算SCROLLBAR的位置,加载前100和后100条数据...不过说真的,那个客户傻成这样,要这样的浏览界面,10W数据逐一看?等着返工吧...