Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    126

    [VB.NET] Problema listbox

    Ciao a tutti,
    ho un problema con una listbox... in pratica devo visualizzare tutta la lista articoli e fare una selezione multipla, prendendo come value l'id articolo e non il titolo articolo.
    Il problema è che non visualizzo nulla nella listbox...

    Codice PHP:
                <asp:ListBox ID="lbCorrelati" SelectionMode="Multiple" DataTextField="titolo" DataValueField="idarticolo" runat="server">
                    <
    asp:ListItem></asp:ListItem>
                </
    asp:ListBox
    Questo il codic:

    Codice PHP:
      drCorrelati commandCorrelati.ExecuteReader()

            Do While 
    drCorrelati.Read
               lbCorrelati
    .DataValueField drCorrelati.Item("idarticolo")
                
    lbCorrelati.DataTextField drCorrelati.Item("titolo")
            
    Loop

            lbCorrelati
    .DataBind() 
    Se inserisco questo codice nel ciclo: lbCorrelati.Items.Add(drCorrelati.Item("titolo"))

    la listbox mi viene popolata ma il campo value riporta il titolo articolo e non l'id!
    Sicuramene sbaglio una sciocchezza, ma non ne riesco ad uscire...

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: c'è qualcosa che non mi torna

    Reader = Comando.ExecuteReader

    Ctrl.DataSource = Reader
    Ctrl.DataTextField = TextField
    Ctrl.DataValueField = ValueField
    Ctrl.DataBind()


    vedi se va così
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    126
    E dove devo inserire il tuo codice? Dentro il ciclo Do While?

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Romyna
    E dove devo inserire il tuo codice? Dentro il ciclo Do While?
    Come hai ben visto, non si usa il ciclo while.

    1) ti crei il reader
    2) imposti il datasource al controllo
    3) imposti DataTextField e DataValueField al controllo
    4) fai DataBind
    5) fai il dispose del reader e della connessione

    ed è tutto
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Nella pagina, la lista è:

    <asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple"></asp:ListBox>
    Pietro

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    126
    Ciao,
    scusa ma ricevo questo errore
    DataBinding: 'System.Data.Common.DataRecordInternal' non contiene una proprietà con nome 'Articolo di prova 1'.
    Scusa ma come non devo ciclare il reader? :master:

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Romyna
    Ciao,
    scusa ma ricevo questo errore


    Scusa ma come non devo ciclare il reader? :master:
    NON DEVI CICLARE NIENTE, ci pensa il comando controllo.DataBind() a fare la scansione del reader.

    Pietro

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    romyna, non devi necessariamente ciclare nel risultato e creare gli item uno ad uno...
    il framework (con i suoi metodi di associazione dei controlli ai dati) è in grado di farlo anche "in un solo colpo", come da esempio di 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 © 2025 vBulletin Solutions, Inc. All rights reserved.