首页 > 解决方案 > 我应该在 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

标签: vb.netdynamic

解决方案


您应该检查以确保您已包含对项目属性部分中的引用System.Linq并且已选择它。Imported namespaces

  1. 在解决方案资源管理器中,右键单击项目并选择属性
  2. 选择参考部分
  3. 在底部列表中,对于导入的命名空间,确保System.Linq旁边有一个勾号。

推荐阅读