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

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

 2008-12-26 11:54:08 来源:WEB开发网   
核心提示: 数据库访问使用LinqToSQL做的,本来想用Linq实现分页功能的,Silverlight学习笔记二:DataGrid 服务器端分页、排序的实现(2),但是忙活了半天,最终以失败告终,这样常用的事件都没有,半成品就半成品吧,主要的问题是,我没办法在Linq中实现动态排序

数据库访问使用LinqToSQL做的,本来想用Linq实现分页功能的,但是忙活了半天,最终以失败告终,主要的问题是,我没办法在Linq中实现动态排序,网上也没有找到一个合适的方法,只能写n个ifelse进行排序,就像下面的代码:

1  var products =frompindb.Products
2            select p;
3  if(dir=="ProductName")
4  products=products.OrderBy(p=>p.ProductName);
5  elseif(dir=="ProductID")
6  products=products.OrderBy(p=>p.ProductID);
7  .......

这样写的话,虽然功能能实现,但是实在是有点弱智。要写上一大堆的代码,真的不如写sql呢。最终,还是没有搞定这个问题,只好写sql语句了。如果大家有什么好的办法能实现的话,请留言告诉我。谢谢了!

ok,到此分页的基本功能搞定了,DataGrid已经可以获取分页的数据了。但是,这个DataGrid和Web上的不一样,没有Pager,晕,只要手工写一个Pager控件了。

第二步,实现Pager。

动手之前,老办法。先上网找现成的,呵呵,不错,这次终于有点结果了,网上不少这样的例子,在silverlight.net上找了一个Pager,先用着再说。呵呵。

这个是地址http://www.13sides.com/page/A-Generic-Pager-Control.aspx,大家自己去看吧,用法很简单。

现在把代码整合起来,ok,已经可以正确的分页了。哈哈。接下来,我们来实现排序。 

第三步,实现排序。

要排序,当然是要点击ColumnHeader了,在DataGrid中找ColumnHeader的点击事件,晕,没有。不会吧,这个微软,怎么搞的啊,虽然Silverlight都2.0了,但是怎么看都还是像个半成品啊,这样常用的事件都没有。半成品就半成品吧,继续手工实现吧。

上一页  1 2 3 4  下一页

Tags:Silverlight 学习 笔记

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