Я сейчас работаю над сайтом доски объявлений и, в частности, страницей поиска работы. Я возвращаю задания, найденные в DataBound
GridView
(а именно gvwJobs
), а в HeaderTemplate
у меня есть DropDownList
с именем ddlSortDirection
, который указывает направление, в котором выполняется сортировка:
<asp:DropDownList runat="server" ID="ddlSortDirection" AutoPostBack="true" OnSelectedIndexChanged="ddlSortDirection_SelectedIndexChanged">
<asp:ListItem Value="DESC">DOWN</asp:ListItem>
<asp:ListItem Value="ASC">UP</asp:ListItem>
</asp:DropDownList>
Как видите, я включил AutoPostBack
. Я также создал пользовательский обработчик события GridView
DataBound
следующим образом:
Protected Sub gvwJobs_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvwJobs.RowDataBound
If e.Row.RowType = DataControlRowType.Header Then
ddlSortDirection.AutoPostBack = True
AddHandler ddlSortDirection.SelectedIndexChanged, AddressOf ddlSortDirection_SelectedIndexChanged
End If
End Sub
Я обнаружил, что субпроцедура ddlSortDirection_SelectedIndexChanged
не вызывается при изменении выбора в ddlSortDirection
. Я вижу, что PostBack
происходит, но метод определенно не вызывается. Я попытался создать аналогичный DropDownList
вне GridView
, и это успешно вызвало событие SelectedIndexChanged
, даже не имея специального обработчика событий!
Пожалуйста, не могли бы вы помочь мне достичь моей цели - DropDownList
запустить событие SelectedIndexChanged
в пределах HeaderTemplate
от GridView
?