asp.net – 对数据绑定集合或对象列表时对gridview进行排序
发布时间:2020-12-15 23:00:57 所属栏目:asp.Net 来源:网络整理
导读:我有一个GridView设置如下: 绑定到列表 T在代码隐藏(我使用我自己的定制BOL) 在HTML页面上没有DataSource对象 可以在我选择的每一列上排序(SortExpressions都设置正确) 但是,我收到以下错误消息: The GridView ‘myGridView’ fired event Sorting which w
我有一个GridView设置如下:
>绑定到列表< T>在代码隐藏(我使用我自己的定制BOL) 但是,我收到以下错误消息:
什么是我最好的方法来获得我的List< T>允许排序? 我怀疑它将与OnSorting属性指定一个函数有关,即: OnSorting = "MySortingMethod" 解决方法
感谢您的分类答案.我转向LINQ帮助动态排序.由于网格知道是否对ASC或DESC进行排序,哪个字段使用LINQ表达式.表达式执行排序,然后我简单地将这些结果绑定到我的gridview.
我怀疑jQuery方法会更快,不需要完整的回发. using System.Linq.Expressions; public SortDirection GridViewSortDirection { get { if (ViewState["sortDirection"] == null) ViewState["sortDirection"] = SortDirection.Ascending; return (SortDirection)ViewState["sortDirection"]; } set { ViewState["sortDirection"] = value; } } protected void gridView_Sorting(object sender,GridViewSortEventArgs e) { //re-run the query,use linq to sort the objects based on the arg. //perform a search using the constraints given //you could have this saved in Session,rather than requerying your datastore List<T> myGridResults = PerfomSearch(); if (myGridResults != null) { var param = Expression.Parameter(typeof(T),e.SortExpression); var sortExpression = Expression.Lambda<Func<T,object>>(Expression.Convert(Expression.Property(param,e.SortExpression),typeof(object)),param); if (GridViewSortDirection == SortDirection.Ascending) { myGridView.DataSource = myGridResults.AsQueryable<T>().OrderBy(sortExpression); GridViewSortDirection = SortDirection.Descending; } else { myGridView.DataSource = myGridResults.AsQueryable<T>().OrderByDescending(sortExpression); GridViewSortDirection = SortDirection.Ascending; }; myGridView.DataBind(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- entity-framework – 此版本的Entity Framework核心软件包管
- 实验五:ASP+MSSQL的web搭建
- 设计模式中的那些工厂
- asp.net – 当通过文件上传控件上传文件时,在c#.net中重命名
- ASP.NET中实现文件的保护性下载基础篇
- 如何在Asp.net中使用HSL
- asp.net-mvc-3 – 在ASP.NET MVC3中混合基本身份验证和表单
- asp.net mvc 之旅 —— 第五站 从源码中分析asp.net mvc 中
- asp.net – 如何在两个网站中访问同一个Session?
- asp.net-core – ASP.NET Core WebAPI默认路由不起作用