2012-06-07 3 views
1

많은 열이있는 표 뷰가 있으며 모두 정렬해야합니다. 밖에 나가서 몇 가지 발췌 문장을 보았지만, 그 중 하나를 내 예제와 함께 사용할 수는 없습니다. 여기까지 내가 지금까지 가지고있는 것이있다.일반 OrderBy 함수

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

표현은

Function(x) x.CreateUserID 

gvSearch.DataSource = _ 
    ApplySorting(Session("grid"), Function(x) x.CreateUserID, "ASC") 
+0

가 데리러 인텔리겠습니까입니까? 여기에 x 속성이 없습니다. –

+0

'Session ("grid")'는'객체'를 반환하고 intellisense가'x'의 멤버를 추측 할 수 없게 만듭니다. 'DirectCast (Session ("grid"), TypeOfYourGrid)'를 사용해보십시오. –

+0

아직 없음, 내가 가진이 List (of spSearchResult2Result) = DirectCast (세션 ("그리드"), List (SpSearchResult2Result)) gvSearch.DataSource = ApplySorting (그리드, 기능 (x) x.), "ASC ") 여전히 intellisense가 없습니다. –