日期:2014-05-20  浏览次数:20921 次

linq 排序
为什么用LINQ排序排好了绑定在dataList上没有用`
 上面显示不了排序后的信息
  让高手帮忙解决下

------解决方案--------------------
我的是可以的
NorthwindDataContext dc = new NorthwindDataContext();
var result=dc.Products
.OrderBy(p => p.UnitPrice).Select(p => new { p.ProductName,p.UnitPrice});
DataList1.DataSource = result;
DataList1.DataBind();

是不是你的datalist没有设置好?
------解决方案--------------------
Linq里的orderby负责IQueryable<T>里的顺序,和dataList利的顺序没关系,dataList默认是根据主键排序.dataList里的顺序在dataList里面调
------解决方案--------------------
Linq动态排序有很多方法,搜了很多没有一个实现的。为了方便我们开发,微软为我们提供了一些类库。在项目里引用就好了。以扩展方法实现。
在网上找一个Dynamic.cs文件。找不的email我。
简单应用。 public DataTable GetProductSort( string sortExpression, string sortDirection)
{
var t = dt.product.OrderBy(sortExpression);
var resultTemp = from r in dt.product
select r;
var tt= resultTemp.OrderBy(sortExpression+" "+sortDirection);
return DBHelper.ToDataTableMy(tt); 

}
------解决方案--------------------
得左,真的是可以的,原来一直没赋值,Frequency属性一直为0

IEnumerable<CanteenMenu> filteringQuery =
from var in menus
orderby var.Frequency descending
select var ;
dgMenus.ItemsSource = filteringQuery.ToList<CanteenMenu>();