Ieri ho fatto un errore, ti ho postato questo codice:
<input type="radio" name="Checkbox<%=rs("ID")%>" <% if rs("Checkbox").Value then Response.Write(" checked=""checked""") %> />
e invece mi accorgo solo ora di aver scritto type="radio", ma quella avrebbe dovuto essere una type="checkbox". La checkbox ti permette ovviamente di impostare lo stato vero o falso, mettendo o togliendo la spunta dalla casella.
in pratica volevo un pulsante radio per ogni record che flaggato "spostava la condizione vero/falso" sul quel record, invertendola in tutti gli altri,
ah, ok. Ora capisco perché avevi creato tanti radio button con lo stesso name. Quindi tu vuoi che dei tanti record, in un dato momento, soltanto uno possa essere "attivo". Una cosa così, insomma:
http://help.adobe.com/en_US/Dreamweaver/10.0_Using/images/as_radioButton.pngSe è effettivamente così e se ho capito bene, allora la cosa si semplifica. Torna ad usare i radiobutton. Il name sarà sempre lo stesso, come avevi fatto tu, ma come value impostagli l'ID del record.
<input type="radio" name="Checkbox" <% if rs("Checkbox").Value then Response.Write(" checked=""checked""") %> value="<%= rs("ID") %>" />
Ora, lato server, recupera il valore di "Checkbox" e utilizzalo in una comando sql UPDATE.
Dim valoreSelezionato
'recupero il valore che arriva dal form
'valoreSelezionato varrà ad esempio 15, cioè l'ID del record selezionato
valoreSelezionato = CInt(Request.Form("Checkbox"))
'eseguo una query SQL che mi imposta lo stato vero/falso.
'Se l'ID è uguale al valoreSelezionato, allora imposterà true, altrimenti false
cn.Execute("UPDATE Stagione SET Checkbox=IIF(ID=" & valoreSelezionato & ", true, false)");
...e basta così. Il comando UPDATE aggiornerà tutti i record, senza che tu li debba ciclare col recordset. La funzione IIF valuterà se ID=valoreSelezionato e in caso positivo restituirà true, altrimenti false.
prova così, ciao.
Modificato da BrightSoul il 22 novembre 2011 22.33 -