簡體   English   中英

主頁控件正在重置

[英]Master page controls are resetting

我在 asp.net 應用程序中使用母版頁和子頁。 我在母版頁上有一個下拉列表和樹視圖(使用站點地圖數據源)。 當我單擊任何樹視圖節點時,頁面被重定向到子頁面。

問題是如果在下拉列表中選擇任何值並單擊樹視圖節點,則應將所選值分配給子頁面的 ext 框。 這是行不通的。 master page_load()在child page_load()之后執行,是不是因為這個?

由於您無法直接查看母版頁,我假設您有兩個使用通用母版頁的頁面。 我還假設此母版頁顯示一個下拉列表和一個樹狀視圖站點地圖。

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

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

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

Session["myvar"] = dropdown.SelectedIndex;

當子頁面加載時,您的母版頁可以通過執行以下操作來恢復此值:

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

另一種選擇是將值添加到樹視圖中每個 url 的查詢字符串中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM