asp.net - 使用对象声明数据视图
问题描述
我在以前的代码中有一个对象,它绑定在数据网格上。现在我需要添加对列进行排序。我在网上搜索以从数据源转换数据表。但我得到一个错误“必须在使用 DataView 之前设置 DataTable。” 有人告诉我该怎么做吗?提前致谢。
有绑定数据网格的代码:
Dim thisOrder as New co.Orders(123)
dgrdOrders.DataSource=thisOrder
dgrdOrders.DataBind()
有我的代码:
Private Sub dgrdOrders_SortCommand(source As Object, e As DataGridSortCommandEventArgs) Handles dgrdOrders.SortCommand
Dim dataTable As DataTable = TryCast(dgrdOrders.DataSource, DataTable)
Dim dv As New DataView(dataTable)
dv.Sort = e.SortExpression
dgrdOrders.DataSource = dv
dgrdOrders.DataBind()
End Sub
解决方案
最后我找到了排序的方法:
Private Sub dgrdOrders_SortCommand(source As Object, e As DataGridSortCommandEventArgs) Handles dgrdOrders.SortCommand
Dim lstOrders As New List(Of co.Order)
For Each objOrder As co.Order In thisOrder
lstOrders.Add(objOrder)
Next
Select Case e.SortExpression
Case "Type"
lstOrders = lstOrders.OrderBy(Function(x) x.Type).ToList
Case "Region"
lstOrders = lstOrders.OrderBy(Function(x) x.Region).ToList
End Select
dgrdOrders.DataSource = lstOrders
dgrdOrders.DataBind()
End Sub
推荐阅读
- flutter - 如何在颤动中删除特定路线?
- r - 无法在 R 版本 4.0.0 上安装软件包
- c# - 从当前位置/旋转开始相机的动画师?
- android - 在 Android 中运行 .sql 文件
- javascript - 跳过曲目时播放暂停按钮未重置
- java - 使用 firebase 当前 uid 而不是随机的保存我的文档文件
- list - 从现有 json 列表中提取唯一值以创建唯一的列表视图构建器
- python - “in”运算符没有按预期工作?(python)
- indexeddb - IndexedDB 不适用于 Microsoft Teams 的 Android 应用程序
- javascript - 在Angular 7 SSR中从服务器端渲染弹出内容