WEB开发网
开发学院图形图像Flash Silverlight学习笔记二:DataGrid 服务器端分页、... 阅读

Silverlight学习笔记二:DataGrid 服务器端分页、排序的实现

 2008-12-26 11:54:08 来源:WEB开发网   
核心提示: 又是老办法,上网找现成的,Silverlight学习笔记二:DataGrid 服务器端分页、排序的实现(3),呵呵,两种方案,下面会介绍原因的,12sortHeader=header;13//获取到字段的名称,一种是把Header改成模板,然后里面放上Button

又是老办法,上网找现成的,呵呵,两种方案,一种是把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 }

上一页  1 2 3 4  下一页

Tags:Silverlight 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接