2010-01-21 3 views
2

Je travaille sur un site Web d'offres d'emploi et plus précisément sur la page de recherche d'emploi en ce moment. Je retournais les emplois trouvés dans un DataBoundGridView (à savoir gvwJobs), et dans le HeaderTemplate j'ai un DropDownList nommé ddlSortDirection qui indique la direction dans laquelle le tri est effectué:DropDownList Evénement SelectedIndexChanged ne se déclenche pas dans GridView HeaderTemplate

<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> 

Comme vous pouvez le voir, je assuré que AutoPostBack est activé. J'ai aussi créé un gestionnaire d'événements personnalisé sur l'événement de DataBoundGridView comme si:

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 

Je trouve que le ddlSortDirection_SelectedIndexChanged n'est pas appelée sous-procédure lorsque la sélection est modifiée en ddlSortDirection. Je peux voir qu'un PostBack se produit, mais la méthode n'est certainement pas appelée. Ce que j'ai essayé de faire est de créer un DropDownList similaire en dehors du GridView et qui a déclenché avec succès l'événement SelectedIndexChanged sans même avoir un gestionnaire d'événement personnalisé!

S'il vous plaît pourriez-vous m'aider à atteindre mon objectif d'avoir un DropDownList tir l'événement SelectedIndexChanged lorsque dans un HeaderTemplate d'un GridView?

Répondre

1

régler la EnableViewState de cette GridView false

-1

mis runat="server" sur DropDownList

Par exemple:

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