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

    Aiuto! DropDownList con VB

    Ciao spero possiate aiutarmi, è abb urgente!

    Praticamente sto lavorando su delle semplici maschere di inserimento/aggiornamento dati tra cui ci sono 3 dropdownlist per gestire le date (g,m,anno).

    Durante l'aggiornamento prendo i dati da un db access e li inserisco nelle caselle di testo ed imposto anche le dropdownlist utilizzando la proprietà "SelectedIndex".

    Tutto funziona per il meglio tranne quando registro un aggiornamento; riesco ad estrapolare senza problemi gli altri dati dalle caselle [nomecasella].text ma non riesco a prendere i valori dalle dropdownlist!

    Mi ritornano sempe i valori minimi della lista (ossia l'index è impostato a 0)!

    Ho provato anche ad utilizzare SelectedValue, SelectedItem e SelectedIndex ma mi ritornano sempre il primo!!

    aiuto!!

    grazie,
    psiCho

  2. #2
    Senza un minimo di codice è difficile appurare quale sia il problema.
    In genere, queste cose accadono quando viene effettuato il binding dei dati senza verificare che si tratti o meno di un PostBack.

    codice:
    Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    If Not Page.IsPostBack Then BindDropDownList()
    End Sub
    Se vuoi ottenere il testo (che è diverso dal valore) selezionato nella DropDownList, fai come segue:

    codice:
    Dim str As String = DropDownList1.SelectedItem.Text
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  3. #3
    È possibile che centri qualcosa il postback.
    Ora il codice non posso postarlo, lo farò lunedì .

  4. #4
    prova a popolare la drop cosi

    Private Sub PopolaDrop()
    Dim m_cmd As SqlCommand
    Dim m_reader As SqlDataReader
    Try
    m_cmd = m_conn.CreateCommand
    m_cmd.CommandText = "SELECT * FROM tab order by descrizione"
    m_conn.Open()
    m_reader = m_cmd.ExecuteReader
    While m_reader.Read
    Dim item As New ListItem
    item.Value = m_reader.GetInt32(0).ToString
    item.Text = m_reader.GetString(1)
    drop.Items.Add(item)
    End While
    m_reader.Close()
    Finally
    m_conn.Close()
    End Try
    End Sub

    cosi sei sicuro che puoi leggere il value o il testo selezionato.

    prova anche ad impostare AutoPostback=true della droplist

  5. #5

    Urgente! Ecco il codice!

    Ciao di nuovo!

    Ecco il codice preciso di quel che succede, spero qualcuno mi possa aiutare.
    Questo esempio è la pagina di inserimento di un dato, il form contiene vari textbox e 3 dropdownlist per gestire la data.
    I textbox sono inseriti come:

    codice:
    <ASP:TextBox id="titolo" width="300" runat="server"/>
    mentre i droplist sono:
    codice:
    <asp:DropDownList id="aggiungiSegnalazioneGiorno" runat="server"></asp:DropDownList>
    I droplist vengono popolati nel Page_load così:
    codice:
    for ia=1 to 31	
    							
    	aggiungiSegnalazioneGiorno.Items.Add(ia)
    	aggiornamentoSegnalazioneGiorno.Items.Add(ia)
    
    	'Se trova il giorno di oggi lo seleziona
    	if ia = Int32.parse(format(now(),"dd")) and not Page.IsPostBack then
    		aggiungiSegnalazioneGiorno.SelectedIndex = ia - 1
    		aggiornamentoSegnalazioneGiorno.SelectedIndex = ia - 1
    	end if			
    Next
    Il bottone di submit richiama la sub aggiungi() che fa:
    codice:
    sub aggiungi(obj as object, e as eventargs)
    
    		' RICREA LA DATA IN FORMATO GG/MM/AAAA
    		Dim dataseg as String		
    		dataseg = aggiungiSegnalazioneGiorno.SelectedItem.value & "/" & aggiungiSegnalazioneMese.SelectedItem.value & "/" & aggiungiSegnalazioneAnno.SelectedItem.value
    	
    		' ELIMINA GLI APICI DALLA STRINGA
        	Dim corretta As String = ibiglietto.text.Replace("'", "''")
    		Dim corretta2 As String = titolo.text.Replace("'", "''")
    		Dim corretta3 As String = informazioni.text.Replace("'", "''")
    
    		'1.1
    		Dim linkCorretto As String = ilink.text.Replace("'","''")
    		
    		' CONTROLLA SIA STATO INSERITO IL MESSAGGIO DEL BIGLIETTO
    	  	if ibiglietto.text="" then
    		   errore.text="Campo non inserito"	 
    		else
    			'1.1 ESEGUE LA QUERY
    			dim strSQL as string = "INSERT INTO Novita(nov_titolo, nov_informazioni, nov_data, nov_biglietto,nov_link) values('"& corretta2 &"', '"& corretta3 &"', '"& dataseg &"', '"& corretta &"', '" & linkCorretto & "')"
    			ExecuteStatement(strSQL)
    			Response.redirect("http://" & Request.ServerVariables("SERVER_NAME") &  Request.ServerVariables("SCRIPT_NAME"))
    	  end if
    		
    	end sub
    Il problema è che dopo un inserimento i dati di tutte le textbox sono inseriti correttamente mentre la data no!
    La data è sempre inserita come se il SelectedItem è sempre impostato a 0!

    Grazie,
    psiCho

    PS. Questo codice è stato fatto da un altro sviluppatore, io sto solo effettuando una revisione ma come vedere è un bel casino..

  6. #6
    nel page_load devi mettere

    if(not ispostback) then
    'il tuo codice
    end if


    vedrai che cosi ti funziona

  7. #7

    Grazie!

    Grazie mille!

    Avevo già un controllo del postback in una parte del Page_load (per gestire il riempimento della tabella dei dati) ed ora c'ho inserito anche la gestione delle combobox e funziona benissimo!

    Grazie ancora,
    psiCho

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.