Determinare l'elemento selected di una checkedlistbox

martedì 30 novembre 2004 - 11.38

Tantalo Profilo | Newbie

Ciao a tutti, qualcuno potrebbe aiutarmi per completare il codice ?

Public Function Manufacturers(ID)
Dim da As New MySQLDataAdapter
Dim ds As New DataSet
da.SelectCommand = New MySQLCommand("SELECT manufacturers_id,
manufacturers_name FROM manufacturers ORDER BY manufacturers_name", DBConn)
ds.Clear()
da.Fill(ds, "manufacturers")
Me.CheckedListBox1.DataSource = ds.Tables("manufacturers")
Me.CheckedListBox1.DisplayMember = "manufacturers_name"
Me.CheckedListBox1.ValueMember = "manufacturers_id"
End Function

Il mio problema è definire come selected l'elemento della CheckedListBox1 il
cui valore (ValueMember) è = ad ID
Le ho provate tutte ma, causa la poca dimestichezza con .net non mi riesce
di capire qual'è l'istruzione corretta.

francescox78 Profilo | Junior Member

Se ho capito bene se devi selezionare un elemento di cui indice sia uguale ad un ID prova a fare questo:

Me.CheckedListBox1.SetItemChecked( ID , True)

naturalmente ID deve essere un intero.

ciao fammi sapere

Francesco.

Tantalo Profilo | Newbie

Ciao Francesco, purtroppo l'istruzione non è corretta
Il mio ID non è infatti l'indice progressivo delle righe ma un valore attribuito all'elemento della riga.
Cerco di spiegarmi meglio, io ho una tabella di database strutturata in questo modo

ID | Articolo
1

Me.CheckedListBox1.SetItemChecked( ID , True)

naturalmente ID deve essere un intero.

ciao fammi sapere

Francesco.

Tantalo Profilo | Newbie

Purtroppo non è così.
La mia problematica è questa:
Ho una tabella di database strutturata in questo modo:
manufacturers_id | manufacturers_name
20 ART1
21 ART2
22 ART3

ID in questo caso è la chiave primaria della mia tabella.
In .NET genero un dataadapter e un dataset e riempio la checkboxlist con questa funzione:

Public Function Manufacturers(ID)
Dim da As New MySQLDataAdapter
Dim ds As New DataSet
da.SelectCommand = New MySQLCommand("SELECT manufacturers_id,
manufacturers_name FROM manufacturers ORDER BY manufacturers_name", DBConn)
ds.Clear()
da.Fill(ds, "manufacturers")
Me.CheckedListBox1.DataSource = ds.Tables("manufacturers")
Me.CheckedListBox1.DisplayMember = "manufacturers_name"
Me.CheckedListBox1.ValueMember = "manufacturers_id"
End Function

In pratica la mia checkboxlist sarà strutturata in questo modo
INDICE | VALUEMEMBER | DISPLAYMEMBER
1 20 ART1
2 21 ART2
3 22 ART3

L'ID che passo come parametro della funzione è frutto di una precedente query ad esempio ID potrebbe essere = a 22
Con l'istruzione Me.CheckedListBox1.SetItemChecked( ID , True) io andrei a impostare come checked l'elemento in corrispondenza dell'indice 22 che non esiste infatti mi esce l'eccezione : Argomento specificato non compreso nell'intervallo.
Quello di cui ho bisogno è una istruzione che mi consenta di determinare com checked l'INDICE in corrispondenza del quale il VALUEMEMBER è uguale a 22 ovvero l'ID parametro della funzione.

Sto letteralmente impazzendo per questo problema!!!!

Tantalo Profilo | Newbie

Trovato, questo è il modo corretto

I = CheckedListBox1.FindStringExact(manufacturers_name)
CheckedListBox1.SetItemChecked(I, True)

Ovviamente era una stupidaggine
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5