Событие DropDownList SelectedIndexChanged не запускается в GridView HeaderTemplate - PullRequest
3 голосов
/ 21 января 2010

Я сейчас работаю над сайтом доски объявлений и, в частности, страницей поиска работы. Я возвращаю задания, найденные в 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?

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

установить EnableViewState этого GridView в false

0 голосов
/ 07 января 2013

набор runat="server" вкл DropDownList

Например:

<asp:DropDownList ID="ddlSortDirection" runat="server" AutoPostBack="True" 
            onselectedindexchanged="ddlSortDirection_SelectedIndexChanged">
</asp:DropDownList>
...