有关如何使用标准搜索产品的建议

时间:2016-05-09 22:53:23

标签: asp.net master-pages

我有一个asp.net网站,在主页中我有一些下拉控件,用户可以选择产品标准。 在最后一个选定的下拉框之后,我将选定的值发送到另一个页面,该页面是子页面到母版页,我对数据库进行查询并在网格视图中显示结果。

我的问题是刷新母版页并清除所有选定的值。 如何将值保留在母版页下拉框中,还是有更好的解决方案?

2 个答案:

答案 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。 我发现这更快更容易。 谢谢你的帮助