【问题标题】:asp.net set values of textboxes dynamicallyasp.net 动态设置文本框的值
【发布时间】:2013-05-26 20:03:07
【问题描述】:

我有一个布局非常独特的页面,其中 36 个文本框使用表格布局,以便反映展厅的布局以及可以预订哪些展台。通过像这样循环表单键,我已经能够将它们无缝地保存到数据库中:

Protected Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
    Dim tbname As String = ""
    Dim vendorName As String = ""
    Dim formkey As String = ""
    Dim conn As New SqlConnection(ConnectionStrings.Item("WebDB").ConnectionString)
    Dim cmd As New SqlCommand("UPDATE FloorPlan SET VendorName = @VendorName WHERE tbName = @tbName", conn)
        conn.Open()

    For Each o As Object In Request.Form.Keys
        formkey = o.ToString.Replace("ctl00$ContentPlaceHolder1$", "")
        If Left(formkey, 2) = "tb" Then
            tbname = formkey
            vendorName = Request(o.ToString)
            cmd.Parameters.AddWithValue("@VendorName", vendorName)
            cmd.Parameters.AddWithValue("@tbName", tbname)

            cmd.ExecuteNonQuery()
            cmd.Parameters.Clear()
            tbname = ""
            vendorName = ""
        End If
    Next
    conn.Close()
    conn.Dispose()
End Sub

我不知道如何在页面加载时动态加载值,它会在页面上找到文本框 id 并填写值。 我尝试过这样的事情:

For Each r In ds1.Tables("SE").Rows
    CType(FindControl(r("tbname")), TextBox).Text = r("vendorname")
Next

但我只是得到“对象引用未设置为实例...”错误。我应该采取什么方法来正确加载值而无需硬编码tb1.text = "blah"tb2.text = "acme" 等...

【问题讨论】:

  • “对象引用”错误很可能是由于 FindControl 无法找到正确的控件。 r("tbname") 是否包含渲染控件的 asp.net id?请注意,Id(由 .Net 用于引用控件)和 Name(用于获取值)通常是不同的。
  • 我已将所有文本框标记为 tb1、tb2、tb3 等。我已将这些 ID 存储在数据库的 tbname 列中。我在想我应该以这种方式获得比赛。我想知道这些控件是否还不能在页面加载时设置?
  • 它们应该在页面加载时可用。我认为问题在于查找控件需要呈现的 id(例如:ctl00$ContentPlaceHolder1$tb1)
  • 还在使用 ctype 和 findcontrol 函数吗?我以前从未见过这样做过。
  • 刚刚查了一下,你是对的。也许它与嵌套控件或母版页有关?可以试试 Atwood 的递归查找控件:stackoverflow.com/questions/1457567/c-findcontrol

标签: asp.net vb.net


【解决方案1】:

也许它与嵌套控件或母版页有关?可以试试 Atwood 的递归查找控件:stackoverflow.com/questions/1457567/c-findcontrol

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多