Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206

    [2.0 - VB-NET] - Due DropDownList concatenati

    Salve ragazzi è possibile avere in una pagina due DropDownList concatenati tra di loro e alla selezione effettuata sul secondo DropDownList avere un DataGrid?
    Occorre considerare che nella pagina già ci sono due DropDownList concatenati per i quali ho attivato il postback.

    Cosa ne dite?

    Grazie
    Cordialità Donaz

  2. #2
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    vai posta il codice ;P

  3. #3
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Ecco questa è la pagina sceglilegale.aspx la parte dei due DropDownList

    codice:
    <div id="legale1">
    <ASP:Textbox id="lblstr_IdLegaleAffid" runat="server"></ASP:Textbox>
        </div>  
    <div id="legale2">
    Categoria: 
        <asp:DropDownList 
    ID="categoriaList" 
    DataTextField="DescrCategoria" 
    DataValueField="IDcategoria"
    OnSelectedIndexChanged="catelistChange" 
    runat="server" />
    Specializzazione: 
        <asp:DropDownList 
    ID="specializzazioneList" 
    DataTextField="DescrSpecializzazione" DataValueField="IDspecializzazione" 
    runat="server" >
        </asp:DropDownList>
    Questa la pagina con il code-behind
    codice:
       Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not Page.IsPostBack Then
    'Popolo il primo dropdownlist
    
     Dim MyConnection07 As OleDbConnection
                    MyConnection07 = New OleDbConnection("Provider=SQLOLEDB; Data Source=ESCZ-NA-00; Integrated Security=SSPI; Initial Catalog=ContenziosoEsattoriale")
                    MyConnection07.Open()
                    Dim strSQL07 As String = "SELECT IDCategoria, DescrCategoria FROM TabcategoriaProf"
                    Dim objCommand07 As New OleDbCommand(strSQL07, MyConnection07)
                    Dim objDataReader07 As OleDbDataReader
                    objDataReader07 = objCommand07.ExecuteReader(CommandBehavior.CloseConnection)
                    categoriaList.DataSource = objDataReader07
                    categoriaList.DataTextField = "DescrCategoria"
                    categoriaList.DataValueField = "IDCategoria"
                    categoriaList.DataBind()
                    Validate()
    end if
    
    'popolo il secondo dropdownlist 
    
     Protected Sub cateListChange(ByVal sender As Object, ByVal e As System.EventArgs) Handles categoriaList.SelectedIndexChanged
    
            'Dim lbl_dropdown1 As String = Me.categoriaList.SelectedValue()
            Dim lbl_dropdown1 As String = categoriaList.Items(categoriaList.SelectedIndex).Value
            Dim MyConnection08 As OleDbConnection
            MyConnection08 = New OleDbConnection("Provider=SQLOLEDB; Data Source=ESCZ-NA-00; Integrated Security=SSPI; Initial Catalog=ContenziosoEsattoriale")
            MyConnection08.Open()
            Dim strSQL08 As String = "SELECT IdSpecializzazione, DescrSpecializ FROM TabSpecializzazione Where IdCategoria = " & lbl_dropdown1
            Dim objCommand08 As New OleDbCommand(strSQL08, MyConnection08)
            Dim objDataReader08 As OleDbDataReader
            objDataReader08 = objCommand08.ExecuteReader(CommandBehavior.CloseConnection)
            specializzazioneList.DataSource = objDataReader08
            specializzazioneList.DataTextField = "DescrSpecializ"
            specializzazioneList.DataValueField = "IdSpecializzazione"
            specializzazioneList.DataBind()
            Validate()
    
        End Sub

    Grazie
    Cordialità Donaz

  4. #4
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Cè qualcosa che nn ti funziona oppure vuoi solo un parare sul codice scritto?

  5. #5
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Il secondo dropdownlist non si popola.
    E non riesco a capire perchè. Inoltre considera che devo aggiungere ancora un DataGrid che devo attivare dal secondo DropDownList.
    Cordialità Donaz

  6. #6
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Prova ad impostare sullla prima dropdowlisy la proprietà AutoPostBack su true , poi per il datagrid non saprei quali sono i problemi che hai ...


    edit.. Anche sulla seconda ti serve per popolare il dataGrid

  7. #7
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    E' possibile avere due coppie di dropdownlist con autopostback a true?
    Cordialità Donaz

  8. #8
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Infatti ho provato ad attivare il postback anche su questi due dropdownlist con questo risultato:

    codice:
    Argomento di postback o callback non valido. La convalida degli eventi viene abilitata mediante <pages enableEventValidation="true"/> nella configurazione oppure mediante <%@ Page EnableEventValidation="true" %> in una pagina. Per motivi di sicurezza, viene verificato che gli argomenti con cui eseguire il postback o il callback di eventi siano originati dal controllo server che ne aveva inizialmente eseguito il rendering. Se i dati sono validi e previsti, utilizzare il metodo ClientScriptManager.RegisterForEventValidation per registrare i dati di postback o callback per la convalida.
    Per questo motivo avevo pensato di utilizzare l'evento onSelectedIndexChanged per attivare la conessione alla tabella del db in funzione del valore selezionato dal dropdownlist.
    Mi spiego meglio:
    prima tabella categorie
    IDcategoria
    DescrCategoria

    Seconda Tabella Specializzazioni
    IdSpecializzazioni
    DescSpecializzazioni
    IdCategoria

    Scelgo la categoria e in funzione del valore scelto popolo la seconda dropdownlist con le specializzazioni relative alla categoria scelta.
    Cordialità Donaz

  9. #9
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    certo che si, ovviamente questa soluzione e poco performante poichè bisonga tener conto del fatto che l'utente per avere l'informazione desiderata sarà costretto a sorbire 3 caricamenti di pagina....

    Quindi se prevedi un alto carico di lavoro su quella pagina devi sviluppare delle tecniche diverse come ad esemio AJAX oppure JS puro.

  10. #10
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Ok.
    La pagina effettuando dei test ha questo comportamento:
    DDL1 con autopostback=true
    DDL2 (concatenato al precedente)

    DDL3 con autopostback=false
    DDL4 concatenato con onSelectedIndexChanged

    Se imposto a true l'autopostback di DDL3 ho l'errore che ti ho riportato prima.
    Se lo lascio a falso la il comportamento poco bello e poco funzionale che quando il DDL1 viene attivato si scatena anche l'evento su DDL4 siccome è posizionato prima l'autopostback già é avvenuto e quindi di norma non si realizza.
    Per quanto riguarda ajax ho provato ad usareil CascadingDropDown:

    codice:
    <ajaxToolkit:CascadingDropDown 
    ID="CascadingDropDown1" 
    runat="server" 
    ServiceMethod="GetDropDownCategoria" 
    TargetControlID="categoriaList" 
    Category="Categoria" 
    PromptText='Seleziona una categoria' 
    ServicePath="../Code_Gaetano/WebServiceDrop.asmx">
    </ajaxToolkit:CascadingDropDown>
    <ajaxToolkit:CascadingDropDown 
    ID="CascadingDropDown2" 
    runat="server"
    ServiceMethod="GetDropDownSpecializzazione"
    ServicePath="../Code_Gaetano/WebServiceDrop.asmx" 
    TargetControlID="specializzazioneList"
    ParentControlID="categoriaList" 
    Category="Specializzazione"
    PromptText="Seleziona una Specializzazione">
     </ajaxToolkit:CascadingDropDown>
    Funziona mi sono fermato nel momento in cui in funzione di cosa viene scelto in DDL4 devo visualizzare il DATAGRID.
    Non so come collegarli. Non c'è modo, almeno per quanto ho capito, di aggiungere un altra extender che piloti un DATAGRID o qualcosa che produca una lista di dati.
    Cordialità Donaz

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.