1

多くの列を含むグリッド ビューがあり、すべてを並べ替える必要があります。そこにいくつかのスニペットを見てきましたが、私の例ではそれらのどれも動作しません。これが私がこれまでに持っているものです。

  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 が含まれますが、そこに取得する方法がわかりません。どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

0

式は

Function(x) x.CreateUserID

gvSearch.DataSource = _
    ApplySorting(Session("grid"), Function(x) x.CreateUserID, "ASC") 
于 2012-06-07T17:33:58.863 に答える