Silverlight学习笔记二:DataGrid 服务器端分页、排序的实现
2008-12-26 11:54:08 来源:WEB开发网好,到此,整个分页、排序的功能就基本上完成了。
呵呵,仔细用一下程序发现,我们在实现了排序之后,DataGrid 然而会自作聪明的帮我们的数据又排了一下,并且,DataGrid默认是支持列拖动的,当我们拖动列时,会触发排序,导致结果和用户预计的不一样。那怎么解决呢,
直接在DataGrid中设置 CanUserSortColumns="False"和CanUserReorderColumns="False"。就可以解决了。
再在测试一下,发现在排序之后,ColumnHeader上面并没有显示标示排序方向的小箭头,查了一下,MSDN上面在介绍 DataGrid 样式和模板的时候,提到过DataGridColumnHeader 状态里面有SortAscending和SortDescending这两种状态,ok,我们就接着写了个方法,来设置Header的状态。在上面MouseLeftButtonDown中我们曾经把排序的Header保存了下来,就是为了在这里使用的。代码如下:
1 privatevoidsetColumnSortState()
2 {
3 if(dir=="asc")
4 VisualStateManager.GoToState(sortHeader, "SortAscending",false);
5 else
6 VisualStateManager.GoToState(sortHeader, "SortDescending",false);
7 }
很简单,但是有个奇怪的问题,就是在排序之后,设置了Header的状态并不能保存下来,鼠标移动,那个小箭头就会消失,具体原因我也不明白,我不太清楚VisualStateManager.GoToState在设置了Header状态是不是和DataGrid自带的排序功能有关联,才导致了排序的小箭头会自动消失,或者在这里根本就不应该用这个方法。暂时我没有去考虑这个问题,为了让排序小箭头能正确显示,我只好在Grid的MouseMove和LayoutUpdated事件里都调用了setColumnSortState(),用来保证小箭头可以正确显示。
至此,整个分页、排序的功能全部完成。除了那个小箭头显示的处理不完美之外,其它到也没有什么大问题。我会在后面的学习中,来解决这个问题。
Tags:Silverlight 学习 笔记
编辑录入:爽爽 [复制链接] [打 印]- ››笔记本蓝屏错误代码0X0000000A故障处理
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››学习网站日志分析:网站日志分析各项指标
- ››学习:Ylmf OS安装全过程(视频)
- ››学习了SEO可以做哪些事
- ››学习 Linux,101: 保持文件系统的完整性
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››学习Java,C等程序开发的十大秘诀
更多精彩
赞助商链接