[英]what should i use instead of Oftype in vb.net?
我正在使用Oftype
生成动态文本框,但是Oftype
不支持Oftype
。 我需要其他控件或任何其他方法来执行此任务。 当我运行此代码时:
Protected Sub AddTextBox(sender As Object, e As EventArgs)
Dim index As Integer = pnlTextBoxes.Controls.OfType(Of TextBox)().ToList().Count + 1
Me.CreateTextBox("txtDynamic" & index)
End Sub
我收到此错误:
'OfType'不是'System.Web.UI.ControlCollection'的成员
当我使用面板生成动态文本框时。
Protected Sub Page_PreInit(sender As Object, e As EventArgs) Handles Me.PreInit
Dim content As ContentPlaceHolder = DirectCast(Me.Master.FindControl("MainContent"), ContentPlaceHolder)
Dim keys As List(Of String) = Request.Form.AllKeys.Where(Function(key) key.Contains("txtDynamic")).ToList()
Dim i As Integer = 1
For Each key As String In keys
Me.CreateTextBox("txtDynamic" & i)
i += 1
Next
End Sub
Private Sub CreateTextBox(id As String)
Try
Dim txtDyn_sub_h As New TextBox()
txtDyn_sub_h.ID = id
txtDyn_sub_h.CssClass = "table_row"
txtSubHd = txtDyn_sub_h.Text
pnlTextBoxes.Controls.Add(txtDyn_sub_h)
Dim lt As New Literal()
lt.Text = "<br />"
pnlTextBoxes.Controls.Add(lt)
Catch ex As Exception
Response.Write(ex.Message)
End Try
End Sub
您应该检查以确保已包含对System.Linq
的引用,并且已在“项目属性”的“ Imported namespaces
部分中将其选中。
System.Linq
旁边有一个勾号。 如果您确实不能如其他建议一样修复Linq参考,则可以手动对其进行迭代:
Dim Count As Integer
For Each C As Control In pnlTextBoxes.Controls
If TypeOf C Is TextBox Then Count += 1
Next
Me.CreateTextBox("txtDynamic" & Count)
但是您真的需要为文本框分配名称吗? 您应该存储所创建实例的引用以进行进一步处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.