Array di valori provenienti da una listbox - vb.net

mercoledì 24 maggio 2006 - 18.49

mo70 Profilo | Junior Member

Ciao a tutti,
qualcuno può scrivermi il codice per popolare l'array aziende con il valore selezionato nella listbox archivio_aziende (stringa)? l'array deve essere implementato ogni volta con il nuovo valore, so che bisogna usare redim preserve ma ho fatto diverse prove e non ne esco fuori.

Grazie...

ciao

micto27 Profilo | Senior Member

>Ciao a tutti,
>qualcuno può scrivermi il codice per popolare l'array aziende
>con il valore selezionato nella listbox archivio_aziende (stringa)?
>l'array deve essere implementato ogni volta con il nuovo valore,
>so che bisogna usare redim preserve ma ho fatto diverse prove
>e non ne esco fuori.
>
>Grazie...

Senza doverti gestire il progressivo ridimensionamento dell'array potresti anche utilizzare
un oggetto di tipo "ArrayList" che è piuttosto comodo da gestire.

dim al as new ArrayList
.....
.....

al.Clear()
While
al.Add(xxxxxx)

Wend

Ciao, Michele

mo70 Profilo | Junior Member

ciao,
ti posto il codice :

Dim array_az_selez as new arraylist
array_az_selez.Add(crit_azienda.selectedItem.value)
crit_az_selez.DataSource=array_az_selez
crit_az_selez.databind()

così funziona, però mi restituisce solo il valore corrente selezionato. Tieni presente che l'utente seleziona un valore nella listbox crit_azienda che ha il postback=true. Io vorrei che l'arraylist si aggiorni tenendo in memoria i valori precedentemente selezionati, esiste un redim preserve come per l'array?

grazie

micto27 Profilo | Senior Member

>Dim array_az_selez as new arraylist
>array_az_selez.Add(crit_azienda.selectedItem.value)
>crit_az_selez.DataSource=array_az_selez
>crit_az_selez.databind()
>
>così funziona, però mi restituisce solo il valore corrente selezionato.
>Tieni presente che l'utente seleziona un valore nella listbox
>crit_azienda che ha il postback=true. Io vorrei che l'arraylist
>si aggiorni tenendo in memoria i valori precedentemente selezionati,
>esiste un redim preserve come per l'array?
>

Tu hai bisogno di accumulare in un array i vari elementi selezionati
sul ListBox in postback successivi?

In questo caso, utilizzando l'arraylist dovrai solo fare attenzione a quando
eseguire lo statement
Dim array_az_selez as new arraylist

se lo esegui sempre ogni volta partirai da un array vuoto

potresti fare qualcosa del genere:

inserisci nella pagina una proprietà simile a questa:

Private ReadOnly Property Selezione() As ArrayList
Get
Dim al As ArrayList = Me.ViewState("MiaSelezione")
If al Is Nothing Then
al = New ArrayList
Me.ViewState("MiaSelezione") = al
End If
Return al
End Get
End Property

a questo punto al momento della selezione di un elemento

me.Selezione.Add(crit_azienda.selectedItem.value)

Ciao, Michele


mo70 Profilo | Junior Member

Fantastico!!! funziona.... riesco anche ad eliminare i valori senza problemi. Ti chiedo ancora due cose: come faccio a verificare se il valore selezionato è già presente nell'arraylist e come si ordinano i valori?

Grazie 1000

ciao

micto27 Profilo | Senior Member

Per valutare se un Item è già presente la classe ArrayList
dispone del metodo Contains

Is array.Contains("pippo") then
.....


Se hai bisogno di pilotare anche l'ordinamento potresti valutare l'utilizzo della
classe SortedList

che è simile ad ArrayList

Ciao, Michele.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5