У меня есть сетка, которую можно отфильтровать по одному или нескольким значениям в строке запроса.Все это прекрасно работает: например, "?subject=Maths&authorName=Bond_James&type=Magazine"
Значения, передаваемые в строку запроса, поступают из 3 раскрывающихся списков: Тема, Автор, Тип.То, что я хотел бы, это когда пользователь нажимает «Фильтр», он возьмет выбранные значения из выпадающих списков и передаст их в строку запроса - это может быть 1 значение, 2 или все 3 (как выше).
В раскрывающихся списках есть элемент «Все темы» / «Все авторы» / «Все типы», каждый со значением -1.Идея состоит в том, что если пользователь оставляет эти элементы выбранными, то кнопка «Фильтр» просто игнорирует их.
Вот мой код:
Protected Sub buttonFilterGo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonFilterGo.Click
Dim queryString As String
Dim selectedAuthorString As String = "author=" & dropAuthorList.SelectedItem.Value
Dim selectedSubjectString As String = "subject=" & dropSubjectList.SelectedItem.Value
Dim selectedTypeString As String = "type=" & dropPaperType.SelectedItem.Value
Const PATH As String = "~/paper/browse/?"
queryString = selectedAuthorString & "&" & selectedSubjectString & "&" & selectedTypeString
If IsNothing(queryString) Then
labelFilterFeedback.Text = "Apply some filters then press Go"
Else
Response.Redirect(PATH & queryString)
labelFilterFeedback.Text = ""
End If
End Sub
Кроме того, еще одна вещь.Как получить раскрывающиеся списки для выбора фильтров при повторной загрузке страницы?
Буду очень признателен за любую помощь!
РЕДАКТИРОВАТЬ: я изменил значения по умолчаниювыпадающие списки на "" - хотя URL выглядит беспорядочно ?author=&subject=&type=
Это работает, это лучший способ?