1
我有一個非常獨特的佈局頁面,其中36個文本框使用表格佈置,以便它反映了展廳的佈局以及可以保留什麼展覽表格。我已經能夠保存他們所有的數據庫無縫地通過形式鍵這樣的循環:asp.net動態設置文本框的值
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(由.Net用於引用控件)和Name(用於獲取值)通常是不同的。 – Sam
我已將所有文本框標記爲tb1,tb2,tb3等。並且我已將這些標識存儲在數據庫的tbname列中。我想我應該這樣做。我想知道如果控件無法在頁面加載時設置? – user2439015
它們應該在Page Load上可用。我認爲問題是查找控件需要提供的id(例如:ctl00 $ ContentPlaceHolder1 $ tb1) – Sam