2012-06-28 37 views
0

我有一個動態生成的表,並且表中的每一行都有一些表單文本框供用戶完成,然後提交表單。我遇到的問題是一旦提交就訪問這些字段中的值。在動態生成的表中無法找到控件

表有通過ID = tableAssigneeChildren

這是我試圖訪問文本框的一個生成的HTML:

<input name="ctl00$ContentPlaceHolder1$tChildName1" type="text" value="Test Name" id="tChildName1" /> 

下面的代碼是我在用的只是爲了測試如果我可以訪問上面的文本框:

Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click 

    Dim childId As Integer 

    For childId = 1 To CInt(iChild.Value) 

     Response.Write(DirectCast(tableAssigneeChildren.FindControl("tChildName" & childId), TextBox).Text & "<br />") 

    Next 

End Sub 

在此先感謝您的任何幫助。 J.

回答

1

動態創建的控件在每次回發時都會丟失。我會建議增加表到你的原因如下標記:

  1. 人們往往會遇到與用戶控件存在不顯示的問題。

  2. Usercontrols事件未被觸發,因爲usercontrols不存在於標記中而是動態生成。

  3. 速度(頁面大小)沒有差異。根據您的需要,您可以切換可視性。

  4. 更清潔,優雅的解決方案。

不管怎麼說,如果你真的需要添加表動態,看看這個問題Dynamic Controls and Postback本教程http://www.4guysfromrolla.com/articles/092904-1.aspx

+1

感謝,只要我讀「動態創建的控件都將丟失在每個回發」我排序的問題在If Not Page.IsPostBack Then statment中創建表的函數。我需要使用動態生成的表格,因爲它的內容取決於數據庫中的數據。儘管感謝您的幫助。 – JBoom