Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Errore nel popolamento di una ddl
mercoledì 19 novembre 2008 - 12.04
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
stuzzo
Profilo
| Junior Member
133
messaggi | Data Invio:
mer 19 nov 2008 - 12:04
Ciao a tutti.
Volevo chiedervi una mano....
Ho una ddl che viene caricata da cb,
DataTable dt = Regione.Elenca();
cboRegione.DataSource = dt;
cboRegione.DataTextField = "NomeRegione";
cboRegione.DataValueField = "IDRegione";
cboRegione.DataBind();
Questo metodo viene invocato in tutte le pagine perchè sta nella master page. Solitamente non dà nessun problema, ma ho scoperto che se sto visualizzando una pagina e torno indietro attraverso il tasto del browser, all'abbandono della pagina in cui sono tornato, mi appare questo errore:
SelectedValue in 'cboRegione' non valido, poiché non è incluso nell'elenco di elementi.
Nome parametro: value
Non capisco il perchè....Mi date un consiglio? grazie
Alfredo Aiello
fguida
Profilo
| Expert
524
messaggi | Data Invio:
mer 19 nov 2008 - 12:25
"".....se sto visualizzando una pagina e torno indietro attraverso il tasto del browser, all'abbandono della pagina in cui sono tornato.....""
Non ho ben capito il problema; l'errore ti si genera quando torni sulla pagina chiamante???
Francesco
stuzzo
Profilo
| Junior Member
133
messaggi | Data Invio:
mer 19 nov 2008 - 12:28
>"".....se sto visualizzando una pagina e torno indietro attraverso
>il tasto del browser, all'abbandono della pagina in cui sono
>tornato.....""
>
>Non ho ben capito il problema; l'errore ti si genera quando torni
>sulla pagina chiamante???
>
>Francesco
Perdonami...
sto nella pagina 1, vado in una pagina 2, adesso attraverso il tasto del browser "indietro" torno alla 1. All'abbandono della pagina 1 mi scatta l'errore.
Spero che sia un po' meglio ora
Alfredo Aiello
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 19 nov 2008 - 12:39
Ciao prova a dirci in che evento di pagina ti crea il problema, solitamente in modalità debug ti dovrebbe anche rare la riga in cui è l'errore.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
stuzzo
Profilo
| Junior Member
133
messaggi | Data Invio:
mer 19 nov 2008 - 12:45
>Ciao prova a dirci in che evento di pagina ti crea il problema,
>solitamente in modalità debug ti dovrebbe anche rare la riga
>in cui è l'errore.
>-----------------------------------------------------------
Ho fatto il debug, l'errore viene generato nel DataBind().
ciao e grazie
Alfredo Aiello
fguida
Profilo
| Expert
524
messaggi | Data Invio:
mer 19 nov 2008 - 14:32
Hai verificato se il tuo datatable non sia vuoto?
Sembrerebbe un errore dovuto alla mancanza di dati...anche se mi aspetterei una ddl vuota. Unica cosa non capisco come mai si verifiche in un back del browser...magari mi replico qui una situazione simile e ti dico (a patto che qualcuno abbia già a soluzione per te)
Francesco
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 19 nov 2008 - 14:45
Il databind me lo aspettavo, ma hai guardato chi ha chiamato quello? L'intero call-stack è importante perchè sembra che chiami il bind di un controllo sul page unload... il che non ha molto senso.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
stuzzo
Profilo
| Junior Member
133
messaggi | Data Invio:
mer 19 nov 2008 - 15:00
Forse ho capito da cosa dipende.....In poche parole mandando indietro con il browser non mi ricarica la pagina e quindi non provvede a svuotarmi e riempirmi di nuovo il controllo. HO messo una pezza controllando il numero degli elementi all'interno della ddl, se = 0 allora riempio sennò lascio perdere. Per adesso sembra che regga.
Vi farò sapere.
Alfredo Aiello
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 19 nov 2008 - 15:03
Il tasto back è uno dei miei peggiori nemici
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
fguida
Profilo
| Expert
524
messaggi | Data Invio:
mer 19 nov 2008 - 15:07
...quindi il dataTable è vuoto quando torni indietro?
Se ti va posta il codice della pagina in modo da vedere bene gli eventi.
Francesco
stuzzo
Profilo
| Junior Member
133
messaggi | Data Invio:
mer 19 nov 2008 - 15:31
@wamba Lo puoi dire forte
>...quindi il dataTable è vuoto quando torni indietro?
>Se ti va posta il codice della pagina in modo da vedere bene
>gli eventi.
if (cboFiltroRegioneMaster.Items.Count == 0)
{
DataTable dt = Regione.Elenca();
cboFiltroRegioneMaster.DataSource = dt;
cboFiltroRegioneMaster.DataTextField = "NomeRegione";
cboFiltroRegioneMaster.DataValueField = "IDRegione";
cboFiltroRegioneMaster.DataBind();
cboFiltroRegioneMaster.Items.Insert(0, new ListItem("Tutte", "0"));
}
Così ho messo una pezza. No al contrario il datatable è riempito, ma la ddl non viene svuotata, probabilmente gli dà fastidio questo. Il metodo che ho appena indicato viene chiamato dalla page master quando (!Page.ISPostBack).
Sicuramente non sarà la soluzione più elegante, ma sembra reggere.
questo è ciò che scrive prima di schiantare
[ArgumentOutOfRangeException: SelectedValue in 'cboFiltroRegioneMaster' non valido, poiché non è incluso nell'elenco di elementi.
Nome parametro: value]
System.Web.UI.WebControls.ListControl.PerformDataBinding(IEnumerable dataSource) +992
System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) +98
System.Web.UI.WebControls.ListControl.PerformSelect() +18
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +68
HomePage_Main.locCaricaRegioni() in c:\Inetpub\wwwroot\Web\xxx\HomePage\Main.master.cs:94
HomePage_Main.locCaricaDatiGenerali() in c:\Inetpub\wwwroot\Web\xxx\HomePage\Main.master.cs:82
HomePage_Main.Page_Load(Object sender, EventArgs e) in c:\Inetpub\wwwroot\Web\xxx\HomePage\Main.master.cs:36
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +45
System.Web.UI.Control.OnLoad(EventArgs e) +80
System.Web.UI.Control.LoadRecursive() +49
System.Web.UI.Control.LoadRecursive() +132
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3744
Spero di far capire un po' meglio la problematica
Messaggio di errore:
SelectedValue in 'cboFiltroRegioneMaster' non valido, poiché non è incluso nell'elenco di elementi.
Nome parametro: value
Ciao!
Alfredo Aiello
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 19 nov 2008 - 15:46
Capito. Il browser ti ha ricaricato la pagina con l'ultimo viewstate salvato senza consultare il server (se controlli con un breakpoint alla pressione del tasto back non dovresti passare dal page load della pagina di destinazione, pagina 1 se non erro). Dovresti settare la scadenza della pagina a livello html per essere certo.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
stuzzo
Profilo
| Junior Member
133
messaggi | Data Invio:
mer 19 nov 2008 - 16:12
>Capito. Il browser ti ha ricaricato la pagina con l'ultimo viewstate
>salvato senza consultare il server (se controlli con un breakpoint
>alla pressione del tasto back non dovresti passare dal page load
>della pagina di destinazione, pagina 1 se non erro). Dovresti
>settare la scadenza della pagina a livello html per essere certo.
Ah, perdonami ma adesso non ho ben capito come fare....Come dovrei fare?
Alfredo Aiello
Torna su
Stanze Forum
Elenco Threads
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 !