在div

时间:2016-09-14 10:05:52

标签: asp.net vb.net

我正在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)

有没有办法做到这一点?

感谢您的时间和精力! :)

1 个答案:

答案 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来检索它。