Binding RadioButton ad un DataSet

martedì 10 gennaio 2006 - 15.41

hellamasta Profilo | Newbie

Ri-ciao a tutti! Ho legato due radiobutton (appartenenti ad un groupbox e che quindi si escludono a vicenda)di un form a due differenti colonne di tipo booleano di una dataTable.
Ora, in entrambi i campi il valore viene aggiornato solo alla prima variazione del radiobutton. In pratica seleziono uno dei due ed il campo relativo nel DataSet diventa true, poi seleziono l'altro e diventa true anche l'altro campo, mentre il primo rimane true. Se ora cambio varie volte la selezione del radiobutton, il valore dei campi rimane true. Potete darmi una dritta?

Brainkiller Profilo | Guru

>Ri-ciao a tutti! Ho legato due radiobutton (appartenenti ad un
>groupbox e che quindi si escludono a vicenda)di un form a due
>differenti colonne di tipo booleano di una dataTable.
>Ora, in entrambi i campi il valore viene aggiornato solo alla
>prima variazione del radiobutton. In pratica seleziono uno dei
>due ed il campo relativo nel DataSet diventa true, poi seleziono
>l'altro e diventa true anche l'altro campo, mentre il primo
>rimane true. Se ora cambio varie volte la selezione del radiobutton,
> il valore dei campi rimane true. Potete darmi una dritta?

Ciao,
mmh, come hai creato il binding ?


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

hellamasta Profilo | Newbie

ciao!!! Ho legato, sincolarmente, ogni radiobutton ad un campo (colonna) della mia dataTable di tipo boolean.
Poi il binding l'ho fatto nel modo radioButton1.DataBinding.Add(nnew Binding("Checked", myDataSet, "nomeDataTable.nomeColonna"));



Brainkiller Profilo | Guru

>ciao!!! Ho legato, sincolarmente, ogni radiobutton ad un campo
>(colonna) della mia dataTable di tipo boolean.
>Poi il binding l'ho fatto nel modo radioButton1.DataBinding.Add(nnew

Mh, mi sembra corretto. Ma la colonna di che tipo dato è ?
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

hellamasta Profilo | Newbie

La colonna è di tipo System.Boolean... e il binding lo fa correttamente, ma una volta che il radio button viene selezionato, il campo va a true e ci rimane anche se lo deseleziono...mah!!!

Brainkiller Profilo | Guru

>La colonna è di tipo System.Boolean... e il binding lo fa correttamente,
>ma una volta che il radio button viene selezionato, il campo
> va a true e ci rimane anche se lo deseleziono...mah!!!

Attenzione, tu stai facendo un Binding al contrario.
Il controllo (RadioButton) prende il valore o lo stato (checked o non checked) dal contenuto del DataSet e non viceversa. Cioè se tu crei un DataSet vuoto gli crei due colonne per esempio Switch1 e Switch2 e le popoli con "false", "false", poi fai il databinding come hai scritto... cosa succede che se entri nel DataSet e modifichi i campi da "false" "false" a "true", "false" il primo radiobutton si seleziona automaticamente.

Cioè che comanda è il DataSet, non sei tu che cambiando lo stato del Radiobutton vai a modificare il contenuto del DataSet. Non ho lavorato molto con il DataBinding ma dal framework leggo:

"In other words, data binding becomes an automatic way of setting any run-time accessible property of any control on the form."

Un modo automatico per impostare proprietà accessibili a runtime di un QUALSIASI CONTROLLO sulla form.
Tutti i controlli su una Form derivano da System.Control. DataSet e le classi derivate da esso derivano da System.Object non da System.Control.
Fammi sapere.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

hellamasta Profilo | Newbie

Grazie mille, sei stato davvero molto gentile e disponibile.
Ho risolto inserendo un controllo degli eventi dei radio buttons, andando a settare i campi del dataset a seconda se il radiobutton è attivo o meno.

Ciao e grazie ancora

Alessio

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