我發現了一些在互聯網上的例子來做到這一點,但真的努力讓它在VB中工作。 (嘗試過一個轉換器但結果不一樣)基於其他DropDownList填充下拉列表VB
我需要根據第一個下拉列表中的不同值來填充Dropdownlist的選擇選項。
任何人都可以幫助在VB中releativley簡單的例子嗎?如果腳本中的值是「硬編碼」,則不會發生混淆。或者是一個從表中提取數據的SQL位
在此先感謝!
我發現了一些在互聯網上的例子來做到這一點,但真的努力讓它在VB中工作。 (嘗試過一個轉換器但結果不一樣)基於其他DropDownList填充下拉列表VB
我需要根據第一個下拉列表中的不同值來填充Dropdownlist的選擇選項。
任何人都可以幫助在VB中releativley簡單的例子嗎?如果腳本中的值是「硬編碼」,則不會發生混淆。或者是一個從表中提取數據的SQL位
在此先感謝!
它做的方法是填充第二個下拉在第一個下拉列表的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 [email protected]"
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
的HTML源像這樣:
<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="True">
</asp:DropDownList>
<asp:DropDownList ID="ddlCountry" runat="server"
AutoPostBack="True" OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged">
</asp:DropDownList>
你最好的選擇將是捕捉SelectedIndexChanged
事件第一下拉列表,檢查什麼的,目前價值下拉列表是什麼,然後用它來清除,然後在第二下拉列表填充項目。當您這樣做時,請記住將第一個DropDownList的AutoPostBack
屬性設置爲"true"
。
你可以完成這聲明在ASPX頁面是這樣的:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myConnString %>" SelectCommand="SELECT id, name FROM planets"></asp:SqlDataSource>
<asp:DropDownList ID="ddlPlanets" AutoPostBack="true" DataTextField="name" DataValueField="id" DataSourceID="SqlDataSource1" runat="server" AppendDataBoundItems="true" />
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:myConnString %>" SelectCommand="SELECT planetid, name FROM moons" FilterExpression="planetid = '{0}'">
<FilterParameters>
<asp:ControlParameter Name="planetid" ControlID="ddlPlanets" PropertyName="SelectedValue" />
</FilterParameters>
</asp:SqlDataSource>
<asp:DropDownList ID="ddlMoons" DataTextField="name" DataValueField="planetid" DataSourceID="SqlDataSource2" runat="server" />
試過這個轉換器? http://www.developerfusion.com/tools/convert/csharp-to-vb/ – Nick 2009-06-01 21:23:45