Я связываю набор данных с GridView в VB .net. У меня есть некоторые пользовательские настройки сортировки, и я хочу отобразить значок рядом с заголовком, если выбран один из 3 вариантов.
Я читал много методов для этого, и я вижу, что у Gridview даже есть стиль заголовка ASC и DESC, который я могу связать с представлением. У меня есть 2 проблемы с этим, хотя:
- Я сортирую список с помощью linq в триггере сортировки, затем связываю его с сеткой данных.
- Причина, по которой я так поступаю, заключается в том, что я хочу поддерживать несколько уровней сортировки, упорядочивая их по 3 столбцам, а не по 1.
Изменить для ясности
В частности, что я хочу сделать, это перебрать значение текста заголовка GridView, посмотреть, соответствует ли оно тому, что я сохранил в viewstate, и, если это так, добавить изображение для этого заголовка в частности. Что-то по сути, как показано ниже, однако headerRow.Cells (y). Текст всегда возвращает "", даже если заголовок содержит текст:
Sub gvPatronData_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
Dim savedSortDirection(), savedSortColumn() As String
Dim headerRow As GridViewRow = gvPatronData.HeaderRow
'this sets the values of these variables
'as strings equal to the text displayed in the header of the gridview
_patronBl.SplitPatronSort(savedSortDirection, SortDirection, savedSortColumn, SortColumn)
If SortDirection <> "" Then
If e.Row.RowType = DataControlRowType.Header Then
For x = 0 To savedSortDirection.Length - 1
For y = 0 To headerRow.Cells.Count - 1
If headerRow.Cells(y).Text = savedSortColumn(x) Then
If savedSortDirection(x) = "Ascending" Then
Dim bGStyle As New System.Web.UI.WebControls.Style()
bGStyle.CssClass = "upSort"
headerRow.Cells(y).ApplyStyle(bGStyle)
Else
Dim bGStyle As New System.Web.UI.WebControls.Style()
bGStyle.CssClass = "downSort"
headerRow.Cells(y).ApplyStyle(bGStyle)
End If
End If
Next
Next
End If
End If
End Sub