我有一个asp.net网站,在主页中我有一些下拉控件,用户可以选择产品标准。 在最后一个选定的下拉框之后,我将选定的值发送到另一个页面,该页面是子页面到母版页,我对数据库进行查询并在网格视图中显示结果。
我的问题是刷新母版页并清除所有选定的值。 如何将值保留在母版页下拉框中,还是有更好的解决方案?
答案 0 :(得分:1)
如果您重定向到另一个页面,母版页将永远不会保留数据,您唯一能做的就是使用会话变量。你可以"掩盖"使用静态变量的会话值:
public static string MyValue
{
get { return (string)HttpContext.Current.Session["MyValue"];}
set { HttpContext.Current.Session["MyValue"] = value; }
}
将值分配给"静态"在执行重定向之前的变量,并且在母版页的Page_Load中,您可以读取这些值并将每个人分配给相应的控件。例如:
在Page1.aspx.cs中:
public void DoRedirect()
{
SiteMaster.MyValue = txtControlPage1.Text;
Response.Redirect("~/Page2.aspx", true);
}
加载Page2.aspx后,将调用母版页的Page_Load,您可以这样做:
protected void Page_Load(object sender, EventArgs e)
{
//Page_Load of Site.Master.cs
if (!IsPostBack)
{
txtSomeControl.Text = SiteMaster.MyValue;
MyUpdatePanel.Update();
}
}
无论您将重定向多少页,主页将始终从静态变量中读取值,您只需在重定向之前指定值。
答案 1 :(得分:0)
我在母版页中添加了一个不可见的面板,并隐藏了所有控件。我没有张贴到另一个页面,而是用数据填充控件并显示Panel。 我发现这更快更容易。 谢谢你的帮助