Asp.net 在vb.net中检查第一个下拉列表的选择索引后,我想在第二个下拉列表中添加值
基本上我有一个表单,它有两个下拉列表。在第一个下拉列表中,我选择城市类别。选择城市后,我想更新第二个下拉列表值,以对应于第一个下拉列表中选择的第一个值。我这样做过,, 这将在第一个下拉列表中添加值:Asp.net 在vb.net中检查第一个下拉列表的选择索引后,我想在第二个下拉列表中添加值,asp.net,vb.net,drop-down-menu,Asp.net,Vb.net,Drop Down Menu,基本上我有一个表单,它有两个下拉列表。在第一个下拉列表中,我选择城市类别。选择城市后,我想更新第二个下拉列表值,以对应于第一个下拉列表中选择的第一个值。我这样做过,, 这将在第一个下拉列表中添加值: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim s As String = "connection String" sqlconn = N
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim s As String = "connection String"
sqlconn = New SqlConnection(s)
sqlCmd = New SqlCommand("select DISTINCT City from usrRegister_aunthentication", sqlconn)
If sqlconn.State = Data.ConnectionState.Closed Then
sqlconn.Open()
End If
dataReader = sqlCmd.ExecuteReader()
While dataReader.Read
Citydropdown.Items.Add(dataReader("City").ToString())
End While
dataReader.Close()
If sqlconn.State = Data.ConnectionState.Open Then
sqlconn.Close()
End If
End Sub
现在假设我选择了一个城市,它应该更新第二个下拉列表,因为我已经这样做了:
Protected Sub Citydropdown_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Citydropdown.Load
Dim CityID As Integer = Convert.ToInt32(Citydropdown.SelectedValue.ToString())
FillStates(CityID)
End Sub
Private Sub FillStates(ByVal CityID As Integer)
Dim strConn As String = "server=.;database=Opex;integrated security=true;pooling=false;"
Dim con As New SqlConnection(strConn)
Dim cmd As New SqlCommand()
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "sql statement"
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
'HallsDropDown.DataSource = objDs.Tables(0)
'HallsDropDown.DataTextField = "Theater_Name"
'HallsDropDown.DataBind()
'HallsDropDown.Items.Insert(0, "--Select--")
Else
Response.Write("No states found")
End If
End Sub
End Class
我的XML如下所示。有人能帮我从第一个下拉列表中选择索引,在第二个下拉列表中添加值吗
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<table style="height:50px;">
<tr>
<td>
<asp:Label Text="Select your City" runat="server" ID="lblcity"></asp:Label>
</td>
<td>
<asp:DropDownList ID="Citydropdown" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:label runat="server" id="lblHals" Text="Select Your Halls" ></asp:label>
</td>
<td>
<asp:DropDownList ID="HallsDropDown" runat="server" />
</td>
</tr>
</table>
</form>
</body>
</html>
无标题页
您需要打开autopostback,并告诉它当dropdownlist的选定索引更改时要执行什么:
<asp:DropDownList ID="Citydropdown" runat="server" AutoPostBack="true" OnSelectedIndexChanged="Citydropdown_Load">
</asp:DropDownList>
使用这种级联的最佳方法是使用webservice绑定下拉列表,并通过javascript/jquery代码调用该webservice
<script type="text/javascript" src="JQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#ddlCity").change(function() {
$("#ddlState").html("");
var CityID = $("#ddlCity option:selected").val();
$.getJSON('ServerResponse.aspx?CityID=' + CityID, function(states) {
$.each(states, function() {
$("#ddlState").append($("<option></option>").val(this['StateCode']).html(this['StateName']));
});
});
});
});
</script>
$(文档).ready(函数(){
$(“#ddlCity”).change(function(){
$(“#ddlState”).html(“”);
var CityID=$(“#ddlCity选项:选中”).val();
$.getJSON('ServerResponse.aspx?CityID='+CityID,函数(状态){
$.each(状态,函数(){
$(“#ddlState”).append($(“”).val(此['StateCode']).html(此['StateName']);
});
});
});
});
您可以参考的链接:
@AVD我已经更新了问题,你能帮我吗
<script type="text/javascript" src="JQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#ddlCity").change(function() {
$("#ddlState").html("");
var CityID = $("#ddlCity option:selected").val();
$.getJSON('ServerResponse.aspx?CityID=' + CityID, function(states) {
$.each(states, function() {
$("#ddlState").append($("<option></option>").val(this['StateCode']).html(this['StateName']));
});
});
});
});
</script>