2009-06-01 3 views
2

인터넷에서이 작업을 수행하는 데 몇 가지 예제가 있지만 VB에서 작동하도록하는 데 어려움이 있습니다. (변환기 시도했지만 혼합 된 결과가)다른 DropDownList를 기반으로 DropdownList 채우기 VB

첫 번째 드롭 다운 목록의 다른 값을 기반으로 채울 수있는 드롭 다운 목록의 선택 옵션이 필요합니다.

누구든지 VB에서 releativley 간단한 예를 도울 수 있습니까? 값이 스크립트에서 "하드 코딩 됨"인 경우 걱정할 필요가 없습니다. 또는 테이블에서 데이터를 가져 오는 SQL 비트

미리 감사드립니다!

+0

이 변환기를 사용해 보셨습니까? http://www.developerfusion.com/tools/convert/csharp-to-vb/ – Nick

답변

2

이 수행되는 방법은

Example 첫 번째 드롭 다운의의 SelectedIndexChanged 이벤트에서 두 번째 드롭 다운을 채울 것입니다 이것은 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" /> 
0

당신의 최선의 선택은, 첫 드롭 다운리스트SelectedIndexChanged 이벤트를 캡처 그것의 현재 값이 DropDownList로이 무엇인지 검토 한 후 취소 한 것을 사용하고 다음 두 번째 드롭 다운리스트의 항목을 채울 수있을 것입니다 . 이렇게 할 때 첫 번째 DropDownList의 AutoPostBack 속성을 "true"으로 설정해야합니다.

<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="True"> 
    </asp:DropDownList> 

    <asp:DropDownList ID="ddlCountry" runat="server" 
    AutoPostBack="True" OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged"> 
</asp:DropDownList> 
2

당신은 달성 할 수있다 : 그래서 HTML 소스로

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 

:

관련 문제