我有一个asp.net网站,并在主页面我有一些下拉控件,用户选择产品的标准。 在选定的最后一个下拉框之后,我将选定的值发送到另一个页面,该页面是childpage到masterpage,然后对数据库进行查询并将结果呈现在gridview中。关于如何搜索标准产品的建议
我的问题是,主页面被刷新,所有选定的值被清除。 如何将值保存到masterpage下拉框或者是否有更好的解决方案?
我有一个asp.net网站,并在主页面我有一些下拉控件,用户选择产品的标准。 在选定的最后一个下拉框之后,我将选定的值发送到另一个页面,该页面是childpage到masterpage,然后对数据库进行查询并将结果呈现在gridview中。关于如何搜索标准产品的建议
我的问题是,主页面被刷新,所有选定的值被清除。 如何将值保存到masterpage下拉框或者是否有更好的解决方案?
我在主页中添加了一个隐形面板并隐藏了里面的所有控件。而不是张贴到另一个页面,我用数据填充控件并显示面板。 我发现这样更快更简单。 感谢您的帮助
如果您重定向到另一个页面,主页面将不会保留数据,您唯一可以做的就是使用会话变量。你可以在“面具”的会话值使用静态变量:
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();
}
}
无论您要重定向多少页,主页总会读取静态变量中的值,并且您只需在重定向之前分配值。
当我在同一页面,我不丢失数据,显示结果的网格是在另一个页面。当我执行response.redirect转到其他页面时,我正在丢失数据。 如果一切都在同一页面上不是问题,但下拉列表位于MasterPage上,网格位于另一页面上。 –
检查我的更新,并让我知道它是否对你有帮助 – Crabax