Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    Ho un problema con una realizzazione di una pagina web aspx e con le DropDownList ...

    ovviamente sono un principiante....

    per meglio capire il mio problema guardate la pagina:
    http://www.iorso.somee.com/000.aspx
    ci sono 4 DropDownList.
    ognuna "pesca" i dati da un diverso database e sono tutte relazionate tra loro ossia: facendo la scelta nella prima, le altre devono mostrare un solo dato possibile.
    selezionando 204 nella prima la seconda pesca un dato in un secondo database relazionato al valore 204 e deve visualizzare 200. la terza visto che la seconda mostra 200 dovrebbe visualizzare un 51 e la quarta 68.
    l'autopostback è attivo in tutte e infatti selezionando nella prima 204 viene visualizzato correttamente 200 nella seconda.
    a questo punto vorrei che in modo automatico anche la terza visualizzasse il suo nuovo valore ma questo non accade.
    nelle mie prove ho notato che inserendo un pulsante (senza nessun codice assegnato), cliccando sul pulsante aggiuorna i valori delle caselle uno alla volta. io vorrei aggiuornali tutti quanti con un solo click. come fare?

    Dettagli aggiuntivi

    nessun codice allegato tranne che:

    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
    DropDownList1.Text = 2
    End Sub

    grazie mille

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    perche' hai scelto tre caselle a discesa, se devono contenere un solo valore ?

    comunque, un esempio :

    codice:
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If Not IsPostBack Then
                Dropdownlist1.AutoPostBack = True
                Dim arr() As Integer = {1, 2, 3, 4, 5}
                Dropdownlist1.DataSource = arr
                Dropdownlist1.DataBind()
            End If
        End Sub
    
        Private Sub Dropdownlist1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Dropdownlist1.SelectedIndexChanged
            Dim arr1() As Integer = {5, 5, 3, 2, 1}
            Dropdownlist2.DataSource = arr1
            Dropdownlist2.DataBind()
            
            Dim arr2() As Integer = {1, 3, 2, 6, 8}
            Dropdownlist3.DataSource = arr2
            Dropdownlist3.DataBind()
            
            Dim arr3() As Integer = {4, 3, 2, 1, 7}
            Dropdownlist4.DataSource = arr3
            Dropdownlist4.DataBind()
        End Sub
    cioe' ti basta recuperare la sorgente dati di ogni DropDown (nel tuo caso dipendente dalla drop immediatamente precedente, magari prendendo NomeDropPrecedente.SelectedItem.Text come chiave per pescare nel DB successivo) nell'evento selectedindexchanged della prima.

    E credo non ci sia bisogno dell'autopostback per le 3 drop 'figlie'. Spero di aver capito qual'era il problema...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    ho compreso il tuo codice ma non riesco ad applicarlo nel mio caso.
    scrivo altre informazioni:
    Io sto cercando di realizzare un albero genealogico.
    la pagina web sarebbe: http://www.iorso.somee.com/tavole_genealogiche.aspx

    su una tabella del database ho un elenco di personaggi selezionabili nella DropDownList1

    nella DropDownList2 viene rivisualizzato questo nome
    la DropDownList3 dovrebbe "pescare" in un'altra tabella del database il nome del padre del personaggio. (in questa tabella ad ogni personaggio corrisponde il nome del padre)
    a questo punto la DropDownList4 dovrebbe visualizzare il nome del padre del personaggio della DropDownList3.... e così a seguire.

    mi potete dare una mano a realizzare questa cosa?

    grazie mille

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    (Prego, per il privato) Cmq non vedo la difficoltà, è appunto la logica che ti ho postato sopra....Cioè:

    - Scegli un personaggio dalla Dropdownlist1

    - Nell'evento Dropdownlist1_SelectedIndexChanged fai il resto. Cioè:
    -- Prendi il personaggio scelto nella Drop1 e lo cerchi nella drop2, mettendolo come selezionato
    (non è una ripetizione ?)
    -- Prendi il testo selezionato della Drop2 e lo usi per fare una ricerca (del padre) che popolerà
    la Drop3
    -- Prendi il testo selezionato della Drop3 e lo usi per fare una ricerca che popolerà la Drop4

    Tutto in sequenza, nello stesso evento....oppure ho capito male ? :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    la cosa che non capisco....

    sull'uso di queste dannate DropDownList c'è una cosa che non riesco a capire....
    vi prego di guardare ancora questo esempio:

    http://www.iorso.somee.com/traduzioni.aspx

    nella pagina troverete una riga di DropDownList
    inserite nella prima "italiano"

    nella seconda apparirà correttamente un elenco di voci in italiano

    selezionando una voce (ad esempio "Alvernia") nella terza casella apparirà un elenco di
    lingue in cui è possibile tradurre questo nome.

    avendo selezionato "francese" nella casella a fianco apparirà correttamente "Auvergne".

    Fin qui tutto bene....

    il problema nasce con le DropDownList della riga sotto:
    queste dovrebbero "pescare" da un'altra tabella del database e visiualizzare il codice (se presente) della voce selezionata nella casella sopra.

    questo funziona nella prima casella ma non nelle successive.

    Non capisco perchè in questo caso i dati non si aggiornino automaticamente.

    se uno inserisse "italiano" "alvernia" "italiano" "alvernia" dovrebbe comparire nella riga sotto

    "1187" "1187"

    invece appare solo in una delle due caselle.

    inoltre, partendo dalla consdizione sopra scritta,
    selezionando nella prima lingua "inglese" la voce nella seconda casella si aggiorna automaticamente, mentre la casella sottostante continua a visualizzare il vecchi codice "1187"


    Grazie ancora!

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    dovresti postare un po' di codice...credo che:

    - la drop NON vada usata quando devi visualizzare un solo valore (le drop sotto possono essere label)

    - tutto dipende dal codice che hai scritto, la classe DropDownList c'entra fino ad un certo punto..


  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    il punto è che ho realizzato la pagina (con Visual Web Developer) senza codice VB aggiunto.
    niente codice scritto in aspx.vb!

    sto semplicemente notando che le caselle si aggiornano a vicenda solo se "pescano dati" dalla stessa tabella del database.
    le caselle della riga in basso pescano dati da una tabella diversa e non si aggiornano immediatamente al variare delle caselle della riga in alto

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da iorso
    il punto è che ho realizzato la pagina (con Visual Web Developer) senza codice VB aggiunto.
    niente codice scritto in aspx.vb!

    sto semplicemente notando che le caselle si aggiornano a vicenda solo se "pescano dati" dalla stessa tabella del database.
    le caselle della riga in basso pescano dati da una tabella diversa e non si aggiornano immediatamente al variare delle caselle della riga in alto
    :master: perdonami ma non capisco come possano 'pescare' dal DB senza codice ...

    Osserva meglio, forse non vedi i file di codebehind perche' non hai cliccato su 'Nest Related Files' in Solution Explorer ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    <%@ Page Language="VB" MasterPageFile="~/Intestazione.master" AutoEventWireup="false" CodeFile="traduzioni.aspx.vb" Inherits="_003" title="traduzioni" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">




    TRADUZIONI



    In questa pagina troverete un rapido traduttore per le principali voci dell'indice,
    più altri nomi e parole usate frequentemente in questo sito.





    <table align="center">
    <tr>
    <td style="width: 100px">
    Lingua</td>
    <td style="width: 100px">
    Voce</td>
    <td style="width: 100px">
    Lingua2</td>
    <td style="width: 100px">
    Traduzione</td>
    <td style="width: 100px">
    anche detto</td>
    </tr>
    <tr>
    <td style="width: 100px">
    <aspropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="TRA1"
    DataTextField="column1" DataValueField="column1">
    </aspropDownList>
    <asp:AccessDataSource ID="TRA1" runat="server" DataFile="~/cronaca.mdb" SelectCommand="SELECT DISTINCT [3_Traduzioni.lingua] AS column1 FROM [trad] ORDER BY [3_Traduzioni.lingua]">
    </asp:AccessDataSource>
    </td>
    <td style="width: 100px">
    <aspropDownList ID="DropDownList2" runat="server" AutoPostBack="True" DataSourceID="TRA2"
    DataTextField="column1" DataValueField="column1">
    </aspropDownList>
    <asp:AccessDataSource ID="TRA2" runat="server" DataFile="~/cronaca.mdb" SelectCommand="SELECT DISTINCT [3_Traduzioni.Voce] AS column1 FROM [trad] WHERE ([3_Traduzioni.lingua] = ?) ORDER BY [3_Traduzioni.Voce]">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList1" Name="column1" PropertyName="SelectedValue"
    Type="String" />
    </SelectParameters>
    </asp:AccessDataSource>
    </td>

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    <td style="width: 100px">
    <aspropDownList ID="DropDownList3" runat="server" AutoPostBack="True" DataSourceID="TRA3"
    DataTextField="column1" DataValueField="column1">
    </aspropDownList>
    <asp:AccessDataSource ID="TRA3" runat="server" DataFile="~/cronaca.mdb" SelectCommand="SELECT DISTINCT [3_Traduzioni_1.lingua] AS column1 FROM [trad] WHERE (([3_Traduzioni.lingua] = ?) AND ([3_Traduzioni.Voce] = ?)) ORDER BY [3_Traduzioni_1.lingua]">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList1" Name="column1" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList2" Name="column2" PropertyName="SelectedValue"
    Type="String" />
    </SelectParameters>
    </asp:AccessDataSource>
    </td>
    <td style="width: 100px">
    <aspropDownList ID="DropDownList4" runat="server" AutoPostBack="True" DataSourceID="TRA4"
    DataTextField="column1" DataValueField="column1">
    </aspropDownList>
    <asp:AccessDataSource ID="TRA4" runat="server" DataFile="~/cronaca.mdb" SelectCommand="SELECT [3_Traduzioni_1.Voce] AS column1, [anche_detto] FROM [trad] WHERE (([3_Traduzioni.lingua] = ?) AND ([3_Traduzioni.Voce] = ?) AND ([3_Traduzioni_1.lingua] = ?))">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList1" Name="column1" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList2" Name="column2" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList3" Name="column3" PropertyName="SelectedValue"
    Type="String" />
    </SelectParameters>
    </asp:AccessDataSource>
    </td>
    <td style="width: 100px">
    <aspropDownList ID="DropDownList5" runat="server" DataSourceID="TRA5" DataTextField="anche_detto"
    DataValueField="anche_detto" AutoPostBack="True">
    </aspropDownList>
    <asp:AccessDataSource ID="TRA5" runat="server" DataFile="~/cronaca.mdb" SelectCommand="SELECT DISTINCT [anche_detto] FROM [trad] WHERE (([3_Traduzioni.lingua] = ?) AND ([3_Traduzioni.Voce] = ?) AND ([3_Traduzioni_1.lingua] = ?) AND ([3_Traduzioni_1.Voce] = ?))">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList1" Name="column1" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList2" Name="column2" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList3" Name="column3" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList4" Name="column4" PropertyName="SelectedValue"
    Type="String" />
    </SelectParameters>
    </asp:AccessDataSource>
    </td>
    </tr>
    <tr>
    <td style="width: 100px">
    </td>
    <td style="width: 100px">
    REF</td>
    <td style="width: 100px">
    </td>
    <td style="width: 100px">
    REF</td>
    <td style="width: 100px">
    REF</td>
    </tr>
    <tr>
    <td style="width: 100px">
    </td>
    <td style="width: 100px">
    <aspropDownList ID="DropDownList6" runat="server" DataSourceID="REF1" DataTextField="REF"
    DataValueField="REF">
    </aspropDownList><asp:AccessDataSource ID="REF1" runat="server" DataFile="~/cronaca.mdb"
    SelectCommand="SELECT DISTINCT [REF] FROM [trad] WHERE ([3_Traduzioni.Voce] = ?)">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList2" Name="column1" PropertyName="SelectedValue"
    Type="String" />
    </SelectParameters>
    </asp:AccessDataSource>
    </td>
    <td style="width: 100px">
    </td>
    <td style="width: 100px">
    <aspropDownList ID="DropDownList7" runat="server" DataSourceID="REF2" DataTextField="REF"
    DataValueField="REF">
    </aspropDownList><asp:AccessDataSource ID="REF2" runat="server" DataFile="~/cronaca.mdb"
    SelectCommand="SELECT DISTINCT [REF] FROM [trad] WHERE (([3_Traduzioni_1.Voce] = ?) AND ([3_Traduzioni_1.lingua] = ?) AND ([REF] > ?))">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList4" Name="column1" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList3" Name="column2" PropertyName="SelectedValue"
    Type="String" />
    <asp:Parameter DefaultValue="0" Name="REF" Type="Int32" />
    </SelectParameters>
    </asp:AccessDataSource>
    </td>
    <td style="width: 100px">
    <aspropDownList ID="DropDownList8" runat="server" DataSourceID="REF3" DataTextField="REF"
    DataValueField="REF">
    </aspropDownList><asp:AccessDataSource ID="REF3" runat="server" DataFile="~/cronaca.mdb"
    SelectCommand="SELECT DISTINCT [REF] FROM [trad] WHERE (([anche_detto] = ?) AND ([3_Traduzioni_1.lingua] = ?) AND ([REF] > ?))">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList5" Name="anche_detto" PropertyName="SelectedValue"
    Type="String" />
    <asp:ControlParameter ControlID="DropDownList3" Name="column1" PropertyName="SelectedValue"
    Type="String" />
    <asp:Parameter DefaultValue="0" Name="REF" Type="Int32" />
    </SelectParameters>
    </asp:AccessDataSource>
    </td>
    </tr>
    </table>






    </asp:Content>

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.