我正在asp.net/vb.net上的一个页面上工作,其中大多数div是动态创建的。此外,我希望用户使用动态插入的HtmlTextAreas,TextBoxes等编辑内容。
我已经设法创造了所有这些东西。我将每个div插入一个面板,在用户点击编辑按钮后,重新加载div并填充项目(例如TextBoxes)。为了保存,我循环遍历每个div并尝试找到该项目。我现在唯一的问题是,不知怎的,我无法找到动态插入的项目。
For Each control As HtmlGenericControl In panel.Controls
'do something like this:
'Dim textBox As New TextBox = control.FindControl("myTextBox")
Next
我已经尝试了一些选项,但遗憾的是没有成功(TextBox总是没有)
我正在使用Masterpages,所以我尝试了这个:
Dim MainContent As ContentPlaceHolder = TryCast(Page.Master.FindControl("ContentPlaceHolder"), ContentPlaceHolder)
Dim textBox As TextBox = DirectCast("myTextBox" & intCount.ToString(), TextBox)
有没有办法做到这一点?
感谢您的时间和精力! :)
答案 0 :(得分:0)
你需要小心你的演员。如果您拥有一组控制对象,则无法将它们全部转换为文本框(即标签无法转换并将引发异常)。
您可以使用以下方式找到控件:
Dim textbox as TextBox = CType(control.FindControl("myTextBox"), TextBox)
要遍历您可以使用的所有文本框:
For Each textbox As TextBox In panel.Controls.OfType(of TextBox)
... interact here
Next
在这一行
Dim textBox As TextBox = DirectCast("myTextBox" & intCount.ToString(), TextBox)
您正在尝试将字符串转换为无效的TextBox。您需要使用FindControl来检索它。