Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    DropDawnList che non si popola

    Ciao a tutti,
    Ennesima principiante di ASP.NET con annessi chiaramente i primi guai :tongue:
    Ho creato una DropDownList che mi elenca una lista di categorie a cui ho associato un valore nel:
    dropCategories.DataValueField = "valore"
    per poter estrarre un elenco di voci inerenti alla categoria selezionata.
    Questo elenco l'ho poi visualizzato in una struttura a repeater all'interno di una serie di textbox posizionati in verticale.
    Fin qui tutto bene :sgrat: . Ma...
    Ho voluto poi inserire un'altra DropDownList alla destra di ogni voce dell'elenco che dovrebbe essere un'ulteriore lista che fa parte di ogni singola voce dell'elenco della categoria selezionata .. e qui casca l'asino ..come si fa?????
    C'è qualcuno che mi può aiutare? Se sono stata poco chiara per favore ditemelo. Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Cosa devi inserire in questa DropDownList? Dati prelevati dallo stesso Record, O valori fissi per tutti i record?

    Hey hey, my my Rock and roll can never die!

  3. #3
    Scusa del ritardo credo valori fissi per tutti i record.
    Questa è la mia situazione:
    Categoria1 Voce1 pippo
    Categoria1 Voce1 pluto
    Categoria1 Voce1 paperino
    Categoria1 Voce2 clarabella
    Categoria1 Voce2 zio paperone
    Categoria2 Voce3 etc. etc.
    Selezionando la categoria riesco a visualizzare l'elenco delle voci di quella categoria ma una dropdownlist a fianco mi deve elencare la lista della scelta relativa alla singola voce.
    Grazie ancora ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    55
    Ciao,sono un nuovo utente del forum.
    Dunque... mi par di capire che tu vuoi popolare una DDList in base al valore che selezioni in un'altra.
    Se è così, io uso questa cosa con i database, ossia se hai un DB con almeno due tabelle (in relazione, ovviamente), diciamo tab1 e tab2,devi popolare il primo dropdownlist con una select su tab1 e popolare la seconda dropdownlist con un'altra select in cui ci metti quello che vuoi.
    Se trovi difficoltà,tiinvio un listato di una delle mieesperienze.
    Ciao
    Enzo

  5. #5
    Devi inserire sulla prima dropdownlist un SelectedIndexChanged che attiva una funzione in cui valuterai la voce selezionata sulla ddl e reagirai di conseguenza popolando la seconda, se quast'ultima ha valori fissi, altrimenti passi questo valore alla query che popolerà la seconda ddl. Spero di essere stato chiaro.

  6. #6
    Allora, siccome sono un po' lessa ora vi posto il codice così vediamo se riuscite a darmi una mano.
    Ora io vorrei che nella DDlist chiamata "dropdescription" si popolasse delle descrizioni che fanno parte di ogni singola voce che viene fuori nella textbox "pippo" selezionando una determinata categoria.

    <script runat="server">
    sub Page_Load(sender AS object, e AS Eventargs)
    if Not IsPostBack Then
    dim connTbl as SqlConnection
    dim cmdSelect as SqlCommand
    dim dtrCategories as SqlDataReader

    connTbl = new SqlConnection("connessione")
    cmdSelect = new SqlCommand ("Select DISTINCT CatId, Categoria from tabella1", connTbl)
    connTbl.open()
    dtrCategories = cmdSelect.ExecuteReader()

    dropCategories.DataSource = dtrCategories
    dropCategories.DataTextField = "Categoria"
    dropCategories.DataValueField = "CatID"
    dropCategories.DataBind()

    dropCategories.Items.Insert(0, New ListItem ("", -1))

    dtrCategories.Close()
    connTbl.Close()
    end if
    end sub

    sub BindVoce (intCatID as Integer)
    dim connTbl as SqlConnection
    dim cmdSelect as SqlCommand
    dim strSelect as string
    dim dtrVoce as SqlDataReader

    connTbl = new SqlConnection("connessione")
    connTbl.open()

    strSelect = "Select DISTINCT Voce From tabella2 where catID=@catID"
    cmdSelect = new SqlCommand (strSelect, connTbl)
    cmdSelect.Parameters.Add("@catID", intCatID)
    dtrVoce = cmdSelect.ExecuteReader()

    rptVoce.DataSource = dtrVoce
    rptVoce.DataBind()
    dtrVoce.Close()
    connTbl.Close()
    end sub

    sub dropCategories_SelectedIndexChanged (sender AS object, e AS Eventargs)
    dim intCadID as integer
    intCadID = dropCategories.SelectedItem.value
    if intCadID <> -1 Then
    BindVoce (intCadID)
    end if
    end sub
    </script>

    <form runat="server">

    <asp:dropdownlist Width="200" ID="dropCategories" AutoPostBack="True" OnSelectedIndexChanged="dropCategories_SelectedInd exChanged" runat="server" />

    <asp:repeater EnableViewState="false" ID="rptVoce" runat="server">
    <itemtemplate>
    <asp:Textbox AutoPostBack="true" Width="150" ReadOnly="true" ID="pippo" runat="server" Text='<%# Container.DataItem("Voce") %>' />
    <asp:dropdownlist Width="100" ID="dropdescription" runat="server" />
    <asp:Textbox Width="100" id="pippo1" runat="server" Text=""/>
    </itemtemplate>
    </asp:repeater>

    </form>


    Grazie ancora

  7. #7
    nessuno mi sa consigliare se sono sulla strada giusta?
    oppure se devo utilizzare altri metodi come l'array, o l'uso dei dataset

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    55

    prova questo!

    Dim stringa As String = "server=(local);database=TUODATABASE;trusted_conne ction=true"
    Dim connessione As New SqlConnection(stringa)

    Sub Page_Load(Sender As Object, E As EventArgs)
    If Not Page.IsPostBack Then
    Dim comando1 As String = "select marca from marche"
    Dim connessione As New SqlConnection(stringa)
    Dim myCommand As New SqlCommand(comando1, connessione)
    connessione.Open()
    lsmarche.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConne ction)
    lsmarche.DataBind()
    lsmarche.Items.Insert(0, "-- Seleziona una marca --")
    End If
    End Sub

    Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs)
    Dim id As String = "select modello from modelli where marcaid = (select marcaid from Marche where marca=" & "'" &(lsmarche.Items(lsmarche.SelectedIndex).text) & "')"
    Dim comando2 As New SqlCommand(id, connessione)
    connessione.Open()
    lsmodelli.DataSource = comando2.ExecuteReader(CommandBehavior.CloseConnec tion)
    lsmodelli.DataBind()
    End Sub

    :gren:

  9. #9
    grazie adesso lo provo poi ti so dire qualcosa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.