我想选择下拉列表值然后更改主题。 两个主题绿色和红色
在我的代码中,我尝试在下拉列表中选择值,然后重定向到第一个值
实施例.. 首先已经选择的值是绿色 接下来选择红色值,然后在下拉列表中显示为绿色
以下代码:
protected void Page_PreInit(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["theme"] != null)
{
Page.Theme = Session["theme"].ToString();
}
Page.Theme = "Green";
}
}
protected void ddltheme_SelectedIndexChanged(object sender, EventArgs e)
{
Session["theme"] = ddltheme.SelectedValue;
Response.Redirect(Request.FilePath);
}
答案 0 :(得分:0)
您可以尝试使用
Session.Add("theme", ddltheme.SelectedValue);
并且在你的委托中添加,因为当你发布数据时,你不会通过你的(!IsPostBack),所以你不要引用
Page.Theme = ddltheme.SelectedValue;
protected void ddltheme_SelectedIndexChanged(object sender, EventArgs e)
{
Session["theme"] = ddltheme.SelectedValue;
Page.Theme = ddltheme.SelectedValue;
Response.Redirect(Request.FilePath);
}
答案 1 :(得分:0)
执行以下操作并不能真正完成任何事情,因为您只是覆盖了会话值:
if (Session["theme"] != null)
{
Page.Theme = Session["theme"].ToString();
}
Page.Theme = "Green";
如果有的话,你试图默认,所以就这样说:
Page.Theme = "Green";
if (Session["theme"] != null)
{
Page.Theme = Session["theme"].ToString();
}
另外,我不太了解Response.Redirect(Request.FilePath);部分...你想用这个完成什么?您是否尝试通过不执行回发来运行代码?更好的方法是简单地在你的ddl事件中设置你的Page.Theme,因为Candie已经解释过,而不是做一个Response.Redirect。