Checkbox creati a runtime: non riesco a modificarne la selezione lato ...

venerdì 27 luglio 2012 - 10.10
Tag Elenco Tags  C#  |  .NET 2.0  |  .NET 4.0  |  Windows Server 2003  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2005  |  Internet explorer 8.0  |  Chrome  |  Firefox  |  Javascript

Pokino Profilo | Junior Member

ciao a tutti, sto lavorando su una applicazione web con il .net 4 e ho in una pagina problemi a gestire una lista di checkbox creata a runtime.
in fase di caricamento pagina io creo la lista di checkbox in base ad un db

foreach (DataRow riga in dsGenerale.Tables["Informazioni"].Rows) { CheckBox ctrlChk = new CheckBox(); ctrlChk.ID = "chkInfo_" + riga.Field<int>("ID"); // dr.GetInt32(0); TableCell tc1 = new TableCell(); tc1.Controls.Add(ctrlChk); TableCell tc2 = new TableCell(); tc2.Text = riga.Field<string>("Informazione"); //dr.GetString(1); TableRow tr = new TableRow(); tr.Cells.Add(tc1); tr.Cells.Add(tc2); tblInformazioni.Rows.Add(tr); }

senza fare nulla di particolare quando attivo un checkbox e poi faccio un submit, mi ritrovo il checkbox ancora selezionato correttamente nella pagina di risposta (se stessa), quindi per fortuna non ho i problemi di stato che ho letto essere comuni in questi casi

il problema è però il seguente: nel caso in cui io selezioni una riga da una datagrid (non MS ma Componentart) scateno un postback e vado a caricare da db dei valori per vari campi della pagina, tra i quali sono compresi anche i checkbox runtime.
Osservando in debug vedo che la funzione di creazione dei checkbox viene caricata per prima nel Page_Load e poi successivamente viene chiamata la routine di gestione del caricamento da db, tuttavia questa routine non ha un reale effetto sui checkbox che rimangono tutti deselezionati.

// esplora la tabella informazioni runtime foreach (TableRow tr in tblInformazioni.Rows) { ((CheckBox)tr.Cells[0].Controls[0]).Checked = true; CheckBox chkBox = (CheckBox)tr.Cells[0].Controls[0]; string idInfo = chkBox.ID.Substring(8); if (listaIR.Contains(idInfo)) chkBox.Checked = true; else chkBox.Checked = false; } // perchè non funziona???

qualcuno ha un suggerimento? grazie

alx_81 Profilo | Guru

>ciao a tutti,
ciao

>Osservando in debug vedo che la funzione di creazione dei checkbox
>viene caricata per prima nel Page_Load e poi successivamente
>viene chiamata la routine di gestione del caricamento da db,
>tuttavia questa routine non ha un reale effetto sui checkbox
>che rimangono tutti deselezionati.
>qualcuno ha un suggerimento?
Hai provato a saltare il caricamento della checkbox list a run time utilizzando IsPostBack?
http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback(v=vs.100).aspx

>grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5