Winforms 如何在页面列表上启用排序<;T>;
我希望有人用过非常好的?我实际上在Winforms应用程序中使用它,虽然它确实有效,但我已经失去了对它进行排序的能力 返回页面列表、控制页面和大小以及绑定到DataGridView都不是问题,但我最关心的是排序。现在我也遇到了,但我真的对其中一个参数要求感到困惑。我正在使用私有方法返回SortedPageList,但我下面的代码似乎不起作用:Winforms 如何在页面列表上启用排序<;T>;,winforms,sorting,lambda,pagedlist,Winforms,Sorting,Lambda,Pagedlist,我希望有人用过非常好的?我实际上在Winforms应用程序中使用它,虽然它确实有效,但我已经失去了对它进行排序的能力 返回页面列表、控制页面和大小以及绑定到DataGridView都不是问题,但我最关心的是排序。现在我也遇到了,但我真的对其中一个参数要求感到困惑。我正在使用私有方法返回SortedPageList,但我下面的代码似乎不起作用: private SortedPagedList<Location, Location> GetInactiveLocationData(int
private SortedPagedList<Location, Location> GetInactiveLocationData(int Index, int Size) {
sysDataContext ctx = new sysDataContext();
try {
var query = ctx.Location.Where(x => x.Active == false).AsQueryable();
return query.ToPagedList(Index, Size, i => i, false);
//return new SortedPagedList<Location, Location>(query, Index, Size, i => i , true);
}
catch (Exception) {
throw;
}
}
private SortedPagedList GetInactivationData(int索引,int大小){
sysDataContext ctx=新的sysDataContext();
试一试{
var query=ctx.Location.Where(x=>x.Active==false).AsQueryable();
return query.ToPagedList(索引,大小,i=>i,false);
//返回新的SortedPagedList(查询、索引、大小,i=>i,true);
}
捕获(例外){
投
}
}
这会引发一个错误“无法按类型排序:位置
”。很明显,我想处理这样一种情况,即用户点击一个列标题对该列进行排序
我知道解决方案涉及的Lambda表达式超出了我的知识水平(承认这很尴尬),在这方面我完全不知道!我非常重视你对上述问题的建议
谢谢你 好的,你可以从学习一些开始(向下滚动到“订购”部分。或者在这里:
一旦你发现了魔法,你就可以飞了:p好吧,我觉得自己像个白痴!……好吧,有点!我有以下几点要做:
using (sysContext ctx = new sysDataContext()) {
try {
var data = ctx.Location.Where(x => x.Active == false).AsQueryable();
var query = data.ToPagedList(PageIndex, PageSize, o => o.DueDate, true);
dgv.DataSource = query;
}
catch (Exception) {
throw;
}
}
现在,排序表达式在这里被描述为o=>o.DueDate
。这很好,虽然这确实有效,但我现在正试图找到一种方法来创建一个通用函数,该函数允许我:
private void RefreshData([type] SortExpression, bool Ascending, int PageIndex, int PageSize) {
using (sysDataContext ctx = new sysDataContext()) {
try {
var data = ctx.Location.AsQueryable();
var query = data.ToPagedList(PageIndex, PageSize, o => o.[SortExpression], Ascending);
dgv.DataSource = query;
}
catch (Exception) {
throw;
}
}
}
这可能吗
另外,SortedPageList方法看起来是这样的(如果它能帮助您帮助我的话):
public static SortedPagedList<T, TResult> ToPagedList<T, TResult>(this IQueryable<T> source, int index, int pageSize, System.Linq.Expressions.Expression<Func<T, TResult>> keySelector, bool asc) {
return new SortedPagedList<T, TResult>(source, index, pageSize, keySelector, asc);
}
publicstaticsortedpagedlisttopagedlist(此IQueryable源、int索引、int页面大小、System.Linq.Expressions.Expression键选择器、bool asc){
返回新的SortedPagedList(源、索引、页面大小、键选择器、asc);
}
如何将
System.Linq.Expressions.Expression
表示为可以作为参数传递的类型?嘿,好的,谢谢,但这些都是我熟悉的东西。我意识到我的问题问得不是很透彻,所以我做了很多编辑。请再看一次!谢谢!