2016-05-09 88 views
0

我有一個asp.net網站,並在主頁面我有一些下拉控件,用戶選擇產品的標準。 在選定的最後一個下拉框之後,我將選定的值發送到另一個頁面,該頁面是childpage到masterpage,然後對數據庫進行查詢並將結果呈現在gridview中。關於如何搜索標準產品的建議

我的問題是,主頁面被刷新,所有選定的值被清除。 如何將值保存到masterpage下拉框或者是否有更好的解決方案?

回答

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(); 
    } 
} 

無論您要重定向多少頁,主頁總會讀取靜態變量中的值,並且您只需在重定向之前分配值。

+0

當我在同一頁面,我不丟失數據,顯示結果的網格是在另一個頁面。當我執行response.redirect轉到其他頁面時,我正在丟失數據。 如果一切都在同一頁面上不是問題,但下拉列表位於MasterPage上,網格位於另一頁面上。 –

+0

檢查我的更新,並讓我知道它是否對你有幫助 – Crabax