我正在使用VB.NET开发一个asp.net应用程序,目前有一个下拉列表,其中填充了我从数据库中检索到的2个值。我正在选择表中名称为ActorEnabled值设置为true的所有值。
此操作的代码位于
之下 Private Sub SelectActors()
Dim dt As New DataTable
Using con As New SqlConnection(ConnectionString)
Dim SelectAll As String = "SELECT * FROM tblActors WHERE ActorEnabled=@EN"
Dim myCommand As SqlCommand
myCommand = New SqlCommand(SelectAll, con)
myCommand.Parameters.Add(New SqlParameter("@EN", True))
Dim da As New SqlDataAdapter
da.SelectCommand = myCommand
da.Fill(dt)
da.Dispose()
End Using
If dt.Rows.Count > 0 Then 'if there are more than 0 rows in datatable
ddlActors.DataSource = dt 'drop down list gets data from data table
ddlActors.DataTextField = "ActorName" 'text field is shown to user which gets information from column name ActorName
ddlActors.DataValueField = "ActorID" 'value field is field on backend which allows text field to be filled in
ddlActors.DataBind() 'bind data to source
End If
End Sub
我的问题是我希望页面上的内容根据下拉列表中选择的值进行更改,即如果从下拉列表中选择值Sylvester Stallone,则asp Label应检索有关的相关信息他来自数据库专栏,例如他的名字,年龄和数据库中表格的相关电影。
但是,我很难找到如何通过点击下拉列表中的值来检索此信息。
该表名为tblActors,具有以下列
ActorID (PK) int
ActorName varchar(50)
ActorEnabled bit
ActorAge int
以下是我目前正在使用的html代码,如果这有帮助
<asp:DropDownList ID="ddlActors" runat="server" AutoPostBack="true"></asp:DropDownList>
<div class="outerImages">
<table class="tblImages">
<tr><td><asp:Image runat="server" ID="tblActImg" /></></td></tr>
<tr><td><asp:Label runat="server" ID="lblActorName">ActorName</asp:Label></td></tr>
</table>
</div>
感谢任何帮助
TLDR; 如何根据VB.NET下拉列表中单击的项目更改标签值并从数据库中检索数据
答案 0 :(得分:1)
您可以为ddlActors的SelectedIndexChanged事件连接一个事件处理程序:
Protected Sub ddlActors_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlClient.SelectedIndexChanged
Dim intActorID As Integer = CInt(ddlActors.SelectedItem.Value)
'Use intActorID as a Parameter value for a query for the other information you need from the database.
End Sub
答案 1 :(得分:1)
您必须将查询更改为(根据需要进行调整):
"SELECT * FROM tblActors WHERE ActorEnabled=@EN AND ActorID=@AID"
并按照您对ActorEnabled的方式设置ActorID参数,但使用NoAlias在其响应中所做的操作:
Dim intActorID As Integer = CInt(ddlActors.SelectedItem.Value)
myCommand.Parameters.Add(New SqlParameter("@AID", intActorID ))