2012-10-19 38 views
1

我在我的ASP.NET頁面中以編程方式構建了許多文本框,單擊按鈕後,我想處理這些值,是否有任何可能從他們的ID在ViewState中?如何檢索ViewState中的TextBox值從它的ID

這裏是我的代碼:

<asp:Table ID="Distances" runat="server" ViewStateMode="Inherit"></asp:Table> 

然後在代碼中創建的所有行和單元格後的背後,我添加了一個文本框到其中的一些:

在ASPX表的參考

回答

1

ViewState是默認啓用的,所以它應該已經工作了Text屬性是在回發堅持。

所以,你可以例如使用FindControl("TextBoxID")或列舉出來,以獲得refernce到TextBox(假設他們被添加到一個容器控制像Panel):

foreach(TextBox txt in MyPanel.Controls.OfType<TextBox>()) 
{ 
    String text = txt.Text; 
} 

TextBox txt = (TextBox)MyPanel.FindControl("TextBox1") 
String text = txt.Text; 

我假設您不會在回傳時重新創建TextBoxes。因此,您需要使用與以前相同的ID,並在頁面生命週期的最後階段使用Page_Load重新創建它們。所以你可以在一個事件中創建它們,但是你不能在那裏重新創建它們。

你應該在你創建它們的地方動態顯示你的代碼,然後我可以更具體。

TRULY UNDERSTANDING DYNAMIC CONTROLS

+0

我只是做到了:我的問題是,我的錶行的操作過程中丟失,所以我不知道我的文本輸入框是;) –