我有一個下拉列表控件,它顯示來自名爲model的表的主鍵以及當我使用下拉列表時應顯示來自同一表的另一個值(外鍵)的文本框。 PK和FK都有一個值。選擇下拉列表值時更改文本框的值
由於我不知道如何做到這一點,我使用了一種搜索方法,每次有人從下拉列表中選擇一個新值時應該調用該方法。
搜索代碼:
Public Function searchArea(ByVal model As String) As String
Dim mycon As New Connection
Using connection As New SqlConnection(mycon.GetConnectionString())
Using command As New SqlCommand()
command.Connection = connection
command.CommandType = CommandType.Text
command.CommandText = "SELECT area FROM model WHERE model= @model"
command.Parameters.AddWithValue("@model", model)
connection.Open()
Dim dataReader As SqlDataReader = command.ExecuteReader()
If (dataReader.Read()) Then
Return dataReader.ToString(0)'this query should always have a single value
End If
Return "Nothing"
End Using
End Using
End Function
事件代碼:
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DropDownList1.SelectedIndexChanged
Dim objModel As New ModelDAO 'the class where the method is
TextBox9.Text = objModel.searchArea(DropDownList1.Text)
End Sub
。
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True"
DataSourceID="SqlDataSource1" DataTextField="MODEL" DataValueField="MODEL">
<asp:ListItem Text="-Select-" Value="" />
</asp:DropDownList>
<asp:TextBox ID="TextBox9" runat="server" Enabled="False" Height="24px"
Width="219px"></asp:TextBox>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DBUserInterfaceConnectionString %>"
SelectCommand="SELECT [MODEL] FROM [MODEL]">
</asp:SqlDataSource>
但正如我想的那樣,它不起作用,你能幫我嗎?
編輯:謝謝,現在它觸發,但我得到的價值:'S'的價值不屬於我的表。可以告訴我,如果我的搜索方法是好的?
AutoPostBack設置爲TRUE? – logixologist
謝謝,現在它觸發,但是我沒有得到我想要的價值,我想我必須檢查我的sql語句。 – phalanx
你的SQL返回什麼? – logixologist