wpf gridcontrol的滚动条 垂直滚动条下拉 加载数据 的事件是哪个

DevExpress GridControl 使用瀑布加载方式加载数据
从事winform开发已经快三年了,这三年中两年使用DevExpress控件进行winform系统开发,对Dev控件有自己的一些思考,下面就常用的表格控件GridControl的分页进行一些讨论。
在平时的系统开发中,对不对C/S系统中的列表进行分页,我和同事也有不一样的见解。同事认为C/S中Grid不必分页,因为分页会对数据的查看带来不便,但是又会遇到数据量较大,传输的压力,他倾向于使用查询条件来约束查询返回的数据量。我们的系统一开始也的确是这么实现的。不进行任何分页处理,一次查询出所有满足条件的记录。但是项目后期发现,我们的想法在一般的界面不会出现任何问题。但是极个别窗体会出现明显的卡顿,数据量太大,简直不忍直视,这使得我必须去找到一种合理的解决方式来改善这个问题。
传统的分页
我引用 我学习Dev控件时看的一篇帖子的一张图,这张图来自博客园中 伍华聪大哥 的 博客(多有冒犯,如对伍华聪大哥带来不方便的地方,我立刻删除。)
这种分页方式是我们最最常见的一种方式,可以自由选择查看的页数和上一页,下一页,通用性较好且比较直观,大方。
瀑布流的分页
这种分页方式有些借鉴网页瀑布流,采用下拉滚动条或者使用鼠标滚轮来实现延时加载的方式,这种方式给用户带来的体验会比传统的方式好一些,如果控制每次加载的记录条数合理,用户完全感受不到数据时延迟加载的。
熟悉Dev控件的朋友估计看出来了,这是一个默认设置的GridControl+GridView控件,要实现这个效果,首先我考虑的是如何检测滚轮事件。通过谷歌找到Dev官方的问答找到了这么一个事件TopRowChanged,这个事件会在GridView中可见的首行记录发生变化时触发。没错,就是这个事件的贡献帮助我们完成这种分页模式。
下面就是方法的实现
int currentIndex = 1;
int currentCount = -1;
int totalCount = -1;
VirtualData data =
List&Student& StudentList =
private void btnQuery_Click(object sender, EventArgs e)
data = new VirtualData();
gridView1.TopRowChanged += gridView1_TopRowC
currentIndex = 1;
var dataSource = data.Query(currentIndex, out totalCount);
StudentList = dataSource.ToList();
gridControl1.DataSource = StudentL
currentCount = StudentList.C
this.labelControl1.Text = "记录总数: " + totalCount.ToString();
private void gridView1_TopRowChanged(object sender, EventArgs e)
if (gridView1.IsRowVisible(currentCount - 10) == DevExpress.XtraGrid.Views.Grid.RowVisibleState.Visible)
gridView1.TopRowChanged -= gridView1_TopRowC
var dataSource = data.Query(++currentIndex, out totalCount);
StudentList.AddRange(dataSource);
gridControl1.RefreshDataSource();
currentCount = StudentList.C
if (dataSource.Count == 100)
gridView1.TopRowChanged += gridView1_TopRowC
  总结:这两种方式都有自己的优点,已经在上面进行了分析,当然,只有适合自己项目的方式才是好的方式。
  我会在后面将上面的代码进行封装,够成新的PageGridControl,方便调用。
  最后,这是本人第一次发帖子,很多地方不懂,需要向各位博客园的朋友进行学习,所以你对这篇文章有什么意见和建议,欢迎留言,我会及时进行回复,但请喷子绕道。
& & & 最后发布Demo文件的链接:&
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。DevExpress GridControl中添加一个复选框控件,复选框不是绑定数据源html教程_devExpress_控件开发_WPF之家
devExpress
DevExpress GridControl中添加一个复选框控件,复选框不是绑定数据源html教程
时间: 23:42:14&&作者:WPF之家&&来源:&&查看:&&评论:
内容摘要:&dxg:GridControl x:Name=&gridControl1&&
&dxg:GridControl.Columns&
&dxg:GridColumn...
&dxg:GridControl x:Name=&gridControl1&&
&dxg:GridControl.Columns&
&dxg:GridColumn Name=&gridColumn1& Header=&IP& VisibleIndex=&1&&
&dxg:GridColumn.EditSettings&
&dxe:ComboBoxEditSettings&
&dxe:ComboBoxEditSettings.StyleSettings&
&dxe:CheckedComboBoxStyleSettings/&
&/dxe:ComboBoxEditSettings.StyleSettings&
&dxe:ComboBoxEditSettings.Items&
&dxe:ComboBoxEditItem Content=&11&/&
&dxe:ComboBoxEditItem Content=&111&/&
&dxe:ComboBoxEditItem Content=&222&/&
&/dxe:ComboBoxEditSettings.Items&
&/dxe:ComboBoxEditSettings&
&/dxg:GridColumn.EditSettings&
&/dxg:GridColumn&
&dxg:GridColumn Name=&gridColumn2& Header=&端口& FieldName=&Port& VisibleIndex=&2&&
&dxg:GridColumn.EditSettings&
&dxe:TextEditSettings x:Name=&Port& /&
&/dxg:GridColumn.EditSettings&
&/dxg:GridColumn&
&dxg:GridColumn Name=&gridColumn3& Header=&刷新时间(秒)& FieldName=&RefreshTime& VisibleIndex=&3&&
&dxg:GridColumn.EditSettings&
&dxe:TextEditSettings x:Name=&RefreshTime& /&
&/dxg:GridColumn.EditSettings&
&/dxg:GridColumn&
&/dxg:GridControl.Columns&&dxg:GridControl.View&
&dxg:TableView x:Name=&tableView1& ShowGroupPanel=&False& AllowHorizontalScrollingVirtualization=&True& AllowSorting=&False&
AllowColumnFiltering=&False& AutoWidth=&True& /&
&/dxg:GridControl.View&
&/dxg:GridControl&
标签:&&&&
原创作品,允许转载,转载时请务必以超链接形式标明文章&、作者信息和本声明。否则将追究法律责任。本文出自&&,请务必保留此出处:
下一篇:没有了
&Powered by|ZYCWPF| 为什么自定义控件后,在XAML中写的属性无效呢?而且加了滚动条,但没有出现?多谢
&来源:读书人网&【读书人网():综合教育门户网站】
|ZYCWPF| 为什么自定义控件后,在XAML中写的属性无效呢?而且加了滚动条,但没有出现?谢谢这是我的ZRichTextB
|ZYCWPF| 为什么自定义控件后,在XAML中写的属性无效呢?而且加了滚动条,但没有出现?谢谢这是我的ZRichTextBox的自定义样式&&&&&Style&TargetType="{x:Type&control:ZRichTextBox}"&&&&&&&&&&Setter&Property="Template"&&&&&&&&&&&&&&Setter.Value&&&&&&&&&&&&&&&&&&ControlTemplate&TargetType="{x:Type&control:ZRichTextBox}"&&&&&&&&&&&&&&&&&&&&&&DockPanel&LastChildFill="True"&&&&&&&&&&&&&&&&&&&&&&&&&&Border&DockPanel.Dock="Top"&SnapsToDevicePixels="True"&&&&&&&&&&&&&&&&&&&&&&&&&&&&BorderBrush="{TemplateBinding&ToolbarBorderBrush}"&&&&&&&&&&&&&&&&&&&&&&&&&&&&BorderThickness&="{TemplateBinding&ToolbarBorderThickness}"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&StackPanel&Height="24"&Orientation="Horizontal"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Background="{TemplateBinding&ToolbarBackground}"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.....这里为我的工具栏按钮&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/StackPanel&&&&&&&&&&&&&&&&&&&&&&&&&&/Border&&&&&&&&&&&&&&&&&&&&&&&&&&ScrollViewer&x:Name="PART_ContentHost"&VerticalScrollBarVisibility="Auto"&&HorizontalScrollBarVisibility="Auto"&&&&&&&&&&&&&&&&&&&&&&&&&&/ScrollViewer&&&&&&&&&&&&&&&&&&&&&&/DockPanel&&&&&&&&&&&&&&&&&&/ControlTemplate&&&&&&&&&&&&&&/Setter.Value&&&&&&&&&&/Setter&&&&&&/Style&然后我XAML中用&zc:ZRichTextBox&x:Name="richTextBox"&Background="#FFD2CB84"&&发现问题1:Background="#FFD2CB84"&对RichTextBox不起效果2:RIchTextBox内容多的时候还是不会出现滚动条谢谢[解决办法]1。&ScrollViewer改成:&&&&&ScrollViewer&x:Name="PART_ContentHost"&VerticalScrollBarVisibility="Auto"&&HorizontalScrollBarVisibility="Auto"&&&&&&&&&&&&&&&&&&&Background="{TemplateBinding&Background}"&
&&&&&/ScrollViewer&2。在使用的时候也要加上VerticalScrollBarVisibility、HorizontalScrollBarVisibility(和普通的rtb一样的)&&&&&&&&&zc:ZRichTextBox&x:Name="richTextBox"&&&&&&&&&&&&&&&&&&&&&&&&&Margin="10,10,10,5"&&&&&&&&&&&&&&&&&&&&&&&&&&ToolbarBackground="#FFD2CB84"&ToolbarBorderBrush="#FFC6BE75"&ToolbarBorderThickness="1,1,1,0"&&&&&&&&&&&&&&&&&&&&&&&&&&CodeControlsVisibility="Visible"&&&&&&&&&&&&&&&&&&&&&&&&&VerticalScrollBarVisibility="Auto"&&&&&&&&&&&&&&&&&&&&&&&&&/&[解决办法]&ScrollViewer&x:Name="PART_ContentHost"&VerticalScrollBarVisibility="Auto"&&HorizontalScrollBarVisibility="Auto"&Background="#FFD2CB84"&&&&&&&&&&&&&&&&&&&&&&&&&&/ScrollViewer&WPF 中如何控制 ListBox 的垂直滚动条位置
[问题点数:30分,结帖人lokiice]
WPF 中如何控制 ListBox 的垂直滚动条位置
[问题点数:30分,结帖人lokiice]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 gridcontrol 下拉框 的文章

 

随机推荐