2010-09-07 48 views
1

我使用的是嚮導控件,第1步有一個列表框,其中包含條目1-10的列表框。第2步然後動態構建並顯示每個條目1個列表框。步驟2中的每個列表框每個包含5個條目。我有一個步驟,需要閱讀步驟2中的列表框,並獲取它們的值以顯示從第2步中選擇的每個條目的3個單選按鈕。從動態控件的Asp.net Web基於動態控件

目前我有3個方法運行populateStep1()populateStep2()populateStep3 ()。我在Page_Load中運行它們。

void page_load() 
{ 
    if(!Page.IsPostBack) 
    { 
     populateStep1(); 
    } 

    populateStep2(); 
    populateStep3(); 
} 

我的問題是,第3步從來沒有第一次工作。它第二次運作,但不是第一次。我相信這是因爲步驟2中的控件尚未應用視圖狀態,因此沒有任何選擇。

任何人都想繪製/指向一個模式來處理依賴於其他動態控件的動態控件的工作?

+0

我從來沒有這樣做過,就像我想要的那樣工作。我能夠通過將會話中的所有信息作爲一種臨時數據存儲保留在對象中來實現。 – Grummle 2010-10-01 19:26:23

回答

0

如果您正在使用動態添加的控件,那麼您確實需要在page life cycle的初始化階段添加它們,因爲這將確保視圖狀態正常保溼。

由於View State在Page_Load之前就已經水化過了,所以你添加的東西太晚了。

將您的邏輯轉移到Page_Init方法中,您應該是黃金。

void Page_Init() 
{ 
    if(!Page.IsPostBack) 
    { 
     populateStep1(); 
    } 

    populateStep2(); 
    populateStep3(); 
}