asp.net – 对绑定到自定义通用对象列表的GridView进行排序
发布时间:2020-12-16 06:59:58 所属栏目:asp.Net 来源:网络整理
导读:我试图弄清楚如何使用多个列(String,DateTime,Decimal等数据类型)对GridView进行排序,这些列绑定到自定义对象的通用列表. MyObject.vb: Public Property IdPublic Property NamePublic Property DatePublic Property Amount MyObjects.aspx.vb: gridView.D
我试图弄清楚如何使用多个列(String,DateTime,Decimal等数据类型)对GridView进行排序,这些列绑定到自定义对象的通用列表.
MyObject.vb: Public Property Id Public Property Name Public Property Date Public Property Amount MyObjects.aspx.vb: gridView.DataSource = GetMyObjects() gridView.DataBind() 注意:GetMyObjects()返回MyObject的List 基本上,我需要能够单击网格的列标题进行排序和反向排序,并且还能够在ViewState中存储排序方向,以便每次单击列标题时方向都会保留. 看起来我可能需要MyObject来实现IComparable,但我不确定如何将它们放在一起. 任何人都可以建议一个很好的教程,或指出我正确的方向? 解决方法
您需要启用排序(
AllowSorting)并处理事件
OnSorting.
注意:示例代码使用C#,但VB版本应该类似. 创建GridView: <asp:GridView ID="GridView1" runat="server" AllowSorting="True" OnSorting="GridView1_Sorting"> </asp:GridView> 处理OnSorting: protected void GridView1_Sorting(object sender,GridViewSortEventArgs e) { GridView1.DataSource = GetObjects(e.SortDirection,e.SortExpression); GridView1.DataBind(); } GetObjects返回一个已排序的List< MyObject>.你必须在这里创建自己的排序逻辑,一个替代方案可能是使用Dynamic Linq.如果你选择那个路径,GetObjects可以这样定义:(有更好的方法,但这足以显示理论) private List<MyObject> GetObjects(SortDirection sd,string se) { // Have we generated data before? if (SimulatedDB == null) { // Create a sample DB SimulatedDB = new List<MyObject>(); var rnd = new Random(); for (int i = 0; i < 20; i++) { var node = new MyObject(); node.Id = i; node.Name = String.Format("Name {0}",i); node.CreationDate = DateTime.Now.AddDays(rnd.Next(100)); node.Amount = (rnd.Next(1000) * rnd.NextDouble()); SimulatedDB.Add(node); } } // Return sorted list if (sd == SortDirection.Ascending) return SimulatedDB.AsQueryable<MyObject>().OrderBy<MyObject>(se).ToList(); else return SimulatedDB.AsQueryable<MyObject>().OrderByDescending<MyObject>(se).ToList(); } 希望能帮助到你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Asp.Net Core中WebSocket绑定的方法详解
- asp.net-mvc – 默认模型绑定抛出“没有为此对象定义的无参
- asp.net jQuery Ajax用户登录功能的实现
- asp.net – 新安装的IIS. Aspx页面不会显示
- asp.net-mvc – 使用自定义HTML扩展在ASP.NET MVC 3 Razor
- asp.net-mvc – 如何阻止用户在MVC3应用程序上登录/注册和其
- asp.net – 使用相同登录数据库的多个应用程序相互记录
- .net-core – VS 2017如何构建和测试包含.Net Core的混合解
- 谈谈基于SQL Server 的Exception Handling
- Chrome F12调试工具常用技巧
推荐文章
站长推荐
- asp.net – 无法启用/正在运行Web API属性路由
- 如何:在ASP.NET自定义服务器控件中使用AJAX
- asp.net-mvc – Kendo ASP.NET MVC – 索引超出范
- asp.net-mvc – ASP.NET MVC中的通用基本控制器错
- asp.net – 安装.net 4.5自定义表单身份验证后中
- asp.net 文章分页显示实现代码
- asp-classic – If子句未按预期工作
- asp.net – TypeError:theForm.submit不是asp:
- asp.net – 缓存通过VirtualPathProvider返回的静
- asp.net-mvc – 如何为ASP.NET MVC编写自己的Vie
热点阅读