我有一个包含很多列的网格视图,所有这些都需要进行排序。我在那里看到了一些片段,但我不能让他们中的任何一个与我的例子一起工作。这是我到目前为止所拥有的。
Protected Sub gvSearch_OnSorting(ByVal sender As Object, _
ByVal e As GridViewSortEventArgs)
If Not Session("sort") Is Nothing Then
Dim strView = Session("sort").ToString()
gvSearch.DataSource = ApplySorting(Session("grid"), , "ASC")
End If
End Sub
我在一篇文章中发现了这个,但我不确定将什么作为表达式
Private Function ApplySorting(Of T, U)( _
query As IQueryable(Of T), _
predicate As Expression(Of Func(Of T, U)), _
order As String) As IQueryable(Of T)
Dim ordered = TryCast(Query, IOrderedQueryable(Of T))
If order = "ASC" Then
If ordered IsNot Nothing Then
Return ordered.ThenBy(predicate)
End If
Return query.OrderBy(predicate)
Else
If ordered IsNot Nothing Then
Return ordered.ThenByDescending(predicate)
End If
Return query.OrderByDescending(predicate)
End If
End Function
结束班
我知道实际的订单看起来像是
Dim GridValues As List(Of spSearchResult2Result)
GridValues = db.spSearchResult2().ToList()
GridValues.OrderBy(Function(x) x.CreateUserID)
对ApplySorting的调用将包含e.SortExpression,但我不知道如何在那里获取它。任何帮助,将不胜感激。感谢
答案 0 :(得分:0)
表达式是
Function(x) x.CreateUserID
gvSearch.DataSource = _
ApplySorting(Session("grid"), Function(x) x.CreateUserID, "ASC")