Silverlight学习笔记二:DataGrid 服务器端分页、排序的实现
2008-12-26 11:54:08 来源:WEB开发网又是老办法,上网找现成的,呵呵,两种方案,一种是把Header改成模板,然后里面放上Button,这样就可以实现了。还有一种,有人提到了用DataGrid的HitTest方法。呵呵,第一个有点费事,每个Header都要改,第二个看起来酷一点,所以我选择了第二种。
试验了一下,晕,HitTest怎么成了不可访问,受保护级别限制。再查MSDN,呵呵,原来2.0里面该成了VisualTreeHelper.FindElementsInHostCoordinates了。ok,下面上代码:
在DataGrid的MouseLeftButtonDown写。这里有个奇怪的问题,点击ColumnHeader并不会触发MouseLeftButtonUp事件。真的搞不明白。
1 privatevoiddgData_MouseLeftButtonDown(objectsender,MouseButtonEventArgse)
2 {
3 //获取点击的ColumnHeader
4 varu=fromelementinVisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null),dgData)
5 whereelementisDataGridColumnHeader
6 selectelement;
7
8 if(u.Count()==1)
9 {
10 DataGridColumnHeaderheader=(DataGridColumnHeader)u.Single();
11 //为什么要把这个header保存下来,下面会介绍原因的。
12 sortHeader=header;
13 //获取到字段的名称。
14 stringheadername=header.Content.ToString();
15 //跟现在的排序字段比较一下,确定应该是desc还是asc
16 stringnewsort=header.Content.ToString();
17 if(newsort==sort)
18 dir=dir=="desc"?"asc":"desc";
19 else
20 dir="asc";
21 sort=newsort;
22 //绑定数据
23 BindGrid();
24 e.Handled=true;
25 }
26 else
27 e.Handled=false;
28 }
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等程序开发的十大秘诀
更多精彩
赞助商链接