2009-07-30 89 views
0

我在asp.net應用程序中使用母版頁和子頁面。我在母版頁上有一個下拉列表和treeview(它使用sitemapdatasource)。當我點擊任何一個treeview節點時,頁面被重定向到子頁面。問題是如果在下拉列表中選擇任何值並單擊treeview節點,則應將選定值分配給子頁面中的ext框。這是行不通的。 master page_load()在子page_load()之後執行,是因爲這個原因?母版頁控件正在重置

幫我解決這個問題。

感謝 魯帕

+0

與其名稱相反,主頁實際上是頁面的子控件。 – 2009-08-05 14:31:21

回答

2

由於無法直接查看母版頁我假設你使用共同的母版頁兩頁。我還假設這個母版頁顯示一個下拉列表和一個樹形圖網站地圖。

基於此,我認爲主要發生的是您的樹視圖呈現普通的舊html鏈接(即<a href='http://stackoverflow.com'>...)。點擊這些按鈕後,瀏覽器會執行第二個子頁面的獲取請求。默認情況下,第一個子頁面的數據不會傳遞給第二個頁面。

有多種方法可以改變這種行爲。首先,您應將AutoPostBack屬性設置爲true,並在您的下拉列表中處理SelectedIndexChanged事件。在這種情況下,您可以保存下拉列表的值,以便稍後恢復。

保存此值的最簡單方法可能是將其放入會話中。

Session["myvar"] = dropdown.SelectedIndex; 

你的母版頁可以恢復該值時,孩子頁面加載做一樣的東西:

if (!IsPostBack && Session["myvar"] != null) 
    dropdown.SelectedIndex = (int)Session["myvar"]; 

另一種選擇是將值添加到TreeView中每個URL的查詢字符串。

+0

謝謝你,幫助我。 – ASD 2009-08-03 06:30:35