如何在重新加载页面之前运行事件处理程序?

时间:2014-08-27 10:01:47

标签: c# asp.net

我有一个控件和事件处理程序:

<asp:DropDownList ID="SortDirection1" runat="server" 
     OnSelectedIndexChanged="SortDirection_SelectedIndexChanged" 
     AutoPostBack="true">
    <asp:ListItem Selected="True" Value="0"> ASC </asp:ListItem>
    <asp:ListItem Value="1"> DESC </asp:ListItem>
</asp:DropDownList>

protected void SortDirection_SelectedIndexChanged(object sender, EventArgs e)
{
    var DDL = (sender as DropDownList);
    Session["SortDirection"] = DDL.SelectedIndex;
}

如果我在DropDownList中更改选择,将重新加载页面,并且只有在触发此处理程序之后才会重新加载。所以,有一个问题。我尝试使用Session["SortDirection"]才能重新编辑。问题是如何在页面重新加载之前重写Session["SortDirection"]

1 个答案:

答案 0 :(得分:0)

您在DDL上使用自动回发,然后在所选索引已更改事件中设置会话值。使用该值的正确位置是加载完成事件。在选定的索引更改事件之后,该事件将被触发。

了解ASPX表单的完整页面生命周期非常有用。 Here is a description from MS。 &#34; 附加页面生命周期注意事项中有一个很好的图表&#34;显示页面及其控件的事件和方法的部分。选定的索引更改事件发生在“事件处理”部分。

之后发生加载完成。当所有进程完成并且在渲染开始之前,这会引发。加载完成的目的是在完成所有设置和处理后为您提供逻辑位置。