Как изменить значение раскрывающегося списка на основе другого значения раскрывающегося списка, используя vb.net - PullRequest
0 голосов
/ 05 июля 2018

Как изменить значение раскрывающегося списка на основе другого значения раскрывающегося списка, используя vb.net

 <asp:DropDownList ID="DropDownList1" runat="server" 
  DataSourceID="SqlDataSource1" 
 DataTextField="Name" 
 DataValueField="Name"
  AppendDataBoundItems="True">
  <asp:ListItem>
  Select Site from list
   </asp:ListItem>
  </asp:DropDownList>
  Warehouse:
 <asp:DropDownList ID="DropDownList2" runat="server" 
  DataSourceID="SqlDataSource2" 
   DataTextField="NAME" 
  DataValueField="INVENTLOCATIONID"
  AppendDataBoundItems="True" >
<asp:ListItem>
 Select Warehouse from list
</asp:ListItem>
 </asp:DropDownList>

Вот мой пример кода, если я выбираю сайт в 1-м хранилище, связанном с раскрывающимся списком, который необходимо отобразить во втором раскрывающемся списке

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете использовать событие SelectedIndexChanged первого выпадающего списка.

Protected Sub ddlCountry_SelectedIndexChanged(ByVal sender As Object, ByVal e As 
 EventArgs)
 Dim CountryID As Integer = Convert.ToInt32(ddlCountry.SelectedValue.ToString())
 FillStates(CountryID)
End Sub

Private Sub FillStates(ByVal countryID As Integer)
 Dim strConn As String = 
 ConfigurationManager.ConnectionStrings("DatabaseConnectionString").ConnectionString
 Dim con As New SqlConnection(strConn)
 Dim cmd As New SqlCommand()
 cmd.Connection = con
 cmd.CommandType = CommandType.Text
 cmd.CommandText = "Select StateID, State from State where CountryID =@CountryID"
 cmd.Parameters.AddWithValue("@CountryID", countryID)
 Dim objDs As New DataSet()
 Dim dAdapter As New SqlDataAdapter()
 dAdapter.SelectCommand = cmd
 con.Open()
 dAdapter.Fill(objDs)
 con.Close()
 If objDs.Tables(0).Rows.Count > 0 Then
   ddlState.DataSource = objDs.Tables(0)
   ddlState.DataTextField = "State"
   ddlState.DataValueField = "StateID"
   ddlState.DataBind()
   ddlState.Items.Insert(0, "--Select--")
Else
   lblMsg.Text = "No states found"
End If
End Sub
...