Это не очень хорошее использование Session в этом сценарии просто потому, что есть лучшие способы сделать это. Сессии должны содержать определенные данные о конечном пользователе каким-либо образом.
Попробуйте что-нибудь в этом духе
Private Property _SortDir As Nullable(Of String) ''# I used "Nullable(Of" because I don't know if you are able to use "String?"
Public Property SortDir() As Nullable(Of String)
Get
Return _SortDir
End Get
Set
_SortDir = value
End Set
End Property
Private Sub dgTasks_SortGrid(ByVal sender As Object, ByVal e As DataGridSortCommandEventArgs) Handles dgTasks.SortCommand
If SortDir.IsNullOrEmpty Or SortDir = "DESC" Then
SortDir = "ASC"
Else
SortDir = "DESC"
End If
BindData(e.SortExpression & SortDir))
End Sub
Я подумал еще об одной причине, по которой вы можете сохранить sortOrder в сеансе, однако это может иметь некоторые неприятные побочные эффекты. Если вы хотите покинуть текущую страницу и вернуться позже с тем же порядком сортировки, а затем оставить ее в сеансе ... НО, что если у вас есть другая сетка в другом месте на сайте, у вас будет другая переменная сеанса для Это? или вы собираетесь сохранить существующий порядок сортировки в новой сетке? Это все, что вам нужно учитывать при использовании переменных сеанса.
Если вы остаетесь на существующей странице, используйте элементы, которые находятся в вашем распоряжении для этой страницы. Черт возьми, вы «могли» использовать _VIEWSTATE
для хранения порядка сортировки (хотя я бы не рекомендовал его).
Помните, что сеть спроектирована как не имеющая состояния, поэтому создание "состояния" немного нежелательно.
И наконец.
Другой вариант для вас - установить порядок сортировки в строке запроса и забыть обо всем остальном (не полностью работает с AJAX).