我有一个动态生成的表,并且对于表中的每一行,都有一些表单文本框供用户完成然后提交表单。我遇到的问题是在提交后访问这些字段中的值。
该表具有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
提前感谢您的帮助。 学家
答案 0 :(得分:1)
每次回发都会丢失动态创建的控件。我建议将表格添加到您的标记中,原因如下:
人们经常遇到没有显示用户控件的问题。
Usercontrols事件未被触发,因为标记中不存在用户控件而是动态生成。
速度(页面大小)没有区别。您可以根据需要切换可见性。
更清洁,更优雅的解决方案。
无论如何,如果您确实需要动态添加表格,请查看此问题Dynamic Controls and Postback和本教程http://www.4guysfromrolla.com/articles/092904-1.aspx