none
DropDownList RRS feed

  • Frage

  • Ich arbeite mit vs2019 und vb. Ich möchte eine cascadierende DropDownList erstellen. Hab schon sehr vieles probiert, verstehe es einfach nicht. Wenn ich es so mache, erscheint eine leere Liste.

    vb.aspx:
    <body>
        <form id="form1" runat="server">
        <div>
            <span style ="font-family:Arial">Select Continent : </span> 
            <asp:DropDownList ID="idLand" runat="server" AutoPostBack = "True" OnSelectedIndexChanged="idLand_SelectedIndexChanged" DataTextField="LandDE" DataValueField="ID">
            <asp:ListItem Text = "--Select Continent--" Value = ""></asp:ListItem>
            </asp:DropDownList>
            <br /><br />
            <span style ="font-family:Arial">Select Country : </span> 
            <asp:DropDownList ID="idBundesland" runat="server" Enabled = "False" AutoPostBack = "True" OnSelectedIndexChanged="idBundesland_SelectedIndexChanged">
            <asp:ListItem Text = "--Select Country--" Value = ""></asp:ListItem>
            </asp:DropDownList>
            <br /><br />
            <span style ="font-family:Arial">Select City : </span> 
            <asp:DropDownList ID="idRegion" runat="server" Enabled = "False" AutoPostBack = "True" OnSelectedIndexChanged="idRegion_SelectedIndexChanged">
            <asp:ListItem Text = "--Select City--" Value = ""></asp:ListItem>
            </asp:DropDownList>
            <br /><br />
            <asp:Label ID="lblResults" runat="server" Text="" Font-Names = "Arial"></asp:Label>        
        </div>
        </form>
    </body>

    Wenn ich die Datenquelle hinzufüge, kommt:

    Die DataSourceID von idLand muss die ID eines Steuerelements vom Typ IDataSource sein. Ein Steuerelement mit der ID SqlDataSource1 konnte nicht gefunden werden.

    obwohl alles in der vb.aspx.vb steht:

    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Configuration
    Partial Class VB
        Inherits System.Web.UI.Page
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
            If Not IsPostBack Then
                idLand.AppendDataBoundItems = True
                Dim strConnString As [String] = ConfigurationManager _
                 .ConnectionStrings("conString").ConnectionString
                Dim strQuery As [String] = "Select Distinct LandDE, ID from Campingplatz ORDER BY LandDE ASC"
                Dim con As New SqlConnection(strConnString)
                Dim cmd As New SqlCommand()
                cmd.CommandType = CommandType.Text
                cmd.CommandText = strQuery
                cmd.Connection = con
                Try
                    con.Open()
                    idLand.DataSource = cmd.ExecuteReader()
                    idLand.DataTextField = "LandDE"
                    idLand.DataValueField = "ID"
                    idLand.DataBind()
                Catch ex As Exception
                    'Throw ex
                Finally
                    con.Close()
                    con.Dispose()
                End Try
            End If
        End Sub

    ...

    Ich benötige Hilfe!!!
    Donnerstag, 7. Oktober 2021 11:26

Alle Antworten

  • Kann mir keiner helfen?
    Donnerstag, 7. Oktober 2021 17:24
  • Hallo Lothar,
    idLand.DataSource = cmd.ExecuteReader()
    Die ExecuteReader-Methode gibt einen SqlDataReader zurück, der der DataSource-Eigenschaft nicht zuzuweisen ist. Eine Datenquelle wird üblicherweise mit einem DataSet oder einer Datentabelle (DataTable) befüllt. Versuch es mit diesem Codeausschnitt (mit einer Datentabelle):
    Dim datenleser As SqlDataReader = cmd.ExecuteReader()
    Dim datentabelle As New DataTable()
    datentabelle.Load(datenleser)
    idLand.DataSource = datentabelle

    Gruß,
    Dimitar

    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 8. Oktober 2021 07:15
    Moderator
  • Hallo Dimitar,

    da bringt er mir den Fehler:

    BC30188: Declaration expected.

    in Zeile 9:

    datentabelle.Load(datenleser)

    Was soll ich jetzt tun?

    Gruss Lothar

    Freitag, 8. Oktober 2021 08:27
  • Hallo Lothar,

    Diesem Fehler entnehme ich, dass Du wahrscheinlich den Codeausschnitt außerhalb einer Methode eingefügt hast. Ersetze bitte diese Zeile innerhalb Deines Page_Load-Ereignishandlers durch den obigen Beispielcode: idLand.DataSource = cmd.ExecuteReader() .

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Montag, 11. Oktober 2021 15:26
    Moderator
  • Hallo Dimitar,

    danke für die Antwort.

    Jetzt folgender Fehler, den ich leider nicht verstehe. Hab schon viel gegoogelt.

    Compilerfehlermeldung: BC30456: 'idRegion_SelectedIndexChanged' ist kein Mitglied von 'vb_aspx'.

    Code:

    <asp:DropDownList ID="idRegion" runat="server" Enabled = "False" AutoPostBack = "True" OnSelectedIndexChanged="idRegion_SelectedIndexChanged"

    Bitte um Hilfe!

    Gruss Lothar

    Dienstag, 12. Oktober 2021 09:34