我通过DropDownList选择主题,由于当OnPreInit(EventArgs s)执行完后,ddlTheme_SelectedIndexChanged(object sender, EventArgs e)迟迟才执行,导致选择的主题不能立即生效,只有刷新后才生效,怎样使我选择DropDownList后主题立即生效?前台代码
<asp:DropDownList ID="ddlTheme" runat="server" OnSelectedIndexChanged="ddlTheme_SelectedIndexChanged" AutoPostBack="True">
     <asp:ListItem Value"Default">默认主题</asp:ListItem>
     <asp:ListItem Value="New">新主题</asp:ListItem>
</asp:DropDownList>后台代码
 private static string theme = "Default";
 protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);
        this.Theme = theme;
                              
    }
protected void ddlTheme_SelectedIndexChanged(object sender, EventArgs e)
    {
        theme = ddlTheme.SelectedValue;
              
    }

解决方案 »

  1.   


    protected void ddlTheme_SelectedIndexChanged(object sender, EventArgs e)
      {
      theme = ddlTheme.SelectedValue;
        repnose.redict("指向当前页面,将页面重定向一下");
      }
      

  2.   

    protected override void Render(HtmlTextWriter writer)
    {
    }
    试试
      

  3.   

    protected void ddlTheme_SelectedIndexChanged(object sender, EventArgs e)
      {
      theme = ddlTheme.SelectedValue;
        Response.Redirect("");
      }
      

  4.   

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        var a= this.Response.Cookies["theme"];
        a.Value = this.DropDownList1.SelectedValue;
        a.Expires = DateTime.MaxValue;
        Response.Redirect(Request.RawUrl);   
    }