Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    ListBox. Trovare gli elementi selezionati

    Ho un listbox a selezione multipla.
    Da client aggiungo uno o più item e li seleziono
    Possibile che nel server per trovare gli elementi selezionati debba ricorrere alle care, vecchie request.Form?
    Non è possibile altrimenti?

    Pietro

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Potresti definire l'attributo runat=server per la ListBox e utilizzare le proprietà della classe System.Web.UI.HtmlControls.HtmlSelect per accedere "programmaticamente" agli elementi selezionati.

    Questo dal punto di vista teorico...se la soluzione è utile, ci addentriamo nei dettagli tecnici successivamente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3

    Re: ListBox. Trovare gli elementi selezionati

    Originariamente inviato da pietro09
    Da client aggiungo...
    "Da client aggiungo" mi spaventa un po'... ma cmq hai provato con
    codice:
    For Each lb As ListItem In ListBox1.Items
                If lb.Selected = True Then
    
                End If
            Next
    Saluti a tutti
    Riccardo

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Scusate ma forse non mi sono spiegato bene.
    Ho un:
    codice:
    <asp:ListBox id="dv1_titolari" runat="server" SelectionMode="Multiple" onchange="controllo_titolare_selezionato(this);">
    quindi una select con selezione multipla e runat=server.
    Popolo questa lista nel server nei soliti modi.
    Nel client aggiungo elementi alla lista (ad esempio, se un nome non esiste nel database, apro un popup di immissione e, quando confermo, aggiungo l'elemento alla lista e chiudo il popup)

    Adesso, nella pagina principale, faccio il submit e, in un certo evento, controllo gli elementi della lista selezionati.
    Il metodo che avete proposto (cioè, il metodo che viene consigliato in letteratura) non funziona, perché non tiene conto degli elementi aggiunti nel client e selezionati dall'utente.
    Perciò, l'unico modo è fare un passo indietro, e andare a vedere cosa restituisce la variabile form di nome uguale al name della lista
    A proposito, quando la pagina ritorna al client, vengono correttamente conservati gli elementi selezionati della lista, tranne quelli aggiunti nel client...

    Insomma, un controllo che altri (e io mi associo) hanno definito "tonto"
    Ciao
    Pietro

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Secondo me, se si utilizza ASP.NET e si sceglie di adoperare controlli lato server, si dovrebbe spostare la maggior parte del lavoro sul server, appunto.

    In questo caso, io avrei inserito una casella di testo (TextBox) in cui digitare un elemento da inserire e un pulsante (Button) che, una volta premuto, inserisca lato server il testo digitato nella casella all'interno della ListBox.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da alka
    Secondo me, se si utilizza ASP.NET e si sceglie di adoperare controlli lato server, si dovrebbe spostare la maggior parte del lavoro sul server, appunto.

    In questo caso, io avrei inserito una casella di testo (TextBox) in cui digitare un elemento da inserire e un pulsante (Button) che, una volta premuto, inserisca lato server il testo digitato nella casella all'interno della ListBox.
    Qui entriamo nella filosofia . Ti dico come la penso.
    Io debbo fare una pagina che funzioni. Punto e basta.
    E per fare questo sono disposto anche ad usare javascript
    Ciao
    Pietro

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da pietro09
    Qui entriamo nella filosofia .
    Capisco...
    Non è un discorso così filosofico, anzi è molto pratico: se usi una tecnologia "server side" per lavorare poi esclusivamente "client side", a cosa ti serve ASP.NET?

    Originariamente inviato da pietro09
    Ti dico come la penso.
    Io debbo fare una pagina che funzioni. Punto e basta.
    In tal caso, prova la soluzione che ti ho indicato; secondo me, è quella più adatta a lavorare nel contesto ASP.NET.

    Sono certo che JavaScript lato client possa rendere le cose più performanti (non è necessario ricaricare una pagina per visualizzare un semplice elemento aggiunto alla ListBox), tuttavia se vuoi poi manipolare il valore lato server arriverai a faticare il doppio.

    Non mi viene in mente altro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    ma passando da request.form riesci a vedere i valori aggiunti e se sono selezionati?

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da DeBe99
    ma passando da request.form riesci a vedere i valori aggiunti e se sono selezionati?

    in ginocchio sotto i ceci Oggi mi sento cattivo

    Non è una domanda da DeBe99

    Allora, dai tempi di asp mi sono fatto una sobroutine che visualizza tutti i parametri passati, form, querystring, session, cookie, e la utilizzo per debug. E' stupidotta ma serve allo scopo.

    Se hai una <select (scusate ma un listbox server viene renderizzato così) con name="pippo" a selezione multipla, dentro un form, nel server, con request.Form("pippo") ottieni una cosa così:

    chiave1,chiave2,chiave3

    cioè, l'elenco dei value selezionati separati da virgola


    Il recupero è banale. Ciao
    Pietro

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    pezzo di codice incriminato. Ho commentato le istruzioni usate prima
    codice:
            'Dim vli() As ListItem
            Dim i%
            'Dim LI As ListItem
            Dim dv1_titolari$()
    
            Try
                'vli = ItemSelezionati(Me.dv1_titolari)
                'If (vli.Length = 0) Then Throw New Exception("La lista dei titolari deve contenere almeno un elemento")
                dv1_titolari = Trim(Request.Form("dv1_titolari")).Split(","c)
                If (dv1_titolari.Length = 0) Then Throw New Exception("La lista dei titolari deve contenere almeno un elemento")
    
                'For Each LI In vli
                For Each LI As String In dv1_titolari
                    'ID_SOGGETTO = CInt(LI.Value)
                    ID_SOGGETTO = CInt(LI)
    Pietro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.