我正在开发一家招聘网站,目前特别关注工作搜索页面。我将找到的工作返回到一个 DataBound
GridView
(即 gvwJobs
)中,在 HeaderTemplate
中,我有一个名为 ddlSortDirection
的 DropDownList
,用于指定排序执行的方向:
<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
中更改选择时,ddlSortDirection_SelectedIndexChanged
子过程没有被调用。我可以看到发生了 PostBack
,但该方法绝对没有被调用。我尝试创建一个类似于 GridView
外部的 DropDownList
,这成功地触发了 SelectedIndexChanged
事件,甚至没有自定义事件处理程序!请帮助我实现我的目标,在
GridView
的 HeaderTemplate
中有一个 DropDownList
触发 SelectedIndexChanged
事件。