gpt4 book ai didi

vb.net - 使用 GridView 和 LINQ 进行排序的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 21:26:13 27 4
gpt4 key购买 nike

<分区>

LINQ 对我来说似乎缺少的一件事是一种通过文本字符串引用列的方法。例如,我有一个典型的 GridView,设置了这样的排序(DataSource 绑定(bind)到代码隐藏中的 LINQ 查询):

<asp:GridView ID="MyGridView" runat="server" AllowSorting="True">
<Columns>
<asp:BoundField DataField="field1" SortExpression="field1" HeaderText="Field 1" />
<asp:BoundField DataField="field2" SortExpression="field2" HeaderText="Field 2" />
<%-- etc. --%>
</Columns>
</asp:GridView>

要使排序正常工作,我必须在 MyGridView_Sorting 事件处理程序中使用两个巨大的 Select 语句(以处理升序和降序):

Dim query = From t In context.MyTables

If e.SortDirection = SortDirection.Ascending Then
Select Case e.SortExpression
Case "field1"
query = query.OrderBy(Function(x) x.field1)
Case "field2"
query = query.OrderBy(Function(x) x.field2)
'etc.'
End Select
Else
Select Case e.SortExpression
Case "field1"
query = query.OrderByDescending(Function(x) x.field1)
Case "field2"
query = query.OrderByDescending(Function(x) x.field2)
'etc.'
End Select
End If

一定有更好的方法来做到这一点,不是吗?我从网格中获取字段名称和排序方向 - 您可能会认为有一种方法可以轻松地将其提供给 LINQ 查询,而无需逐个字段进行翻译。谁有更好的方法?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com