[VB] Problemi nel ritrovare controlli nel PageLoad

lunedì 03 novembre 2008 - 15.33

samar Profilo | Senior Member

Buongiorno a tutti,
premetto di essere a conoscenza della banalità del problema, ma essendo un novizio, mi affido volentieri a chi mi vorrà aiutare:
come da titolo, dovendo sviluppar euna funzioncina nel pageload nn mi ritrovo gli Id dei controlli creati in una pagina, ma ad esempio solo gli id dei sqldatasource usati nella stessa, so che mi sto perdendo in un bicchiere d'acqua ma spero in un vs salvagente...
tnx

alx_81 Profilo | Guru

>Buongiorno a tutti,
Ciao!

>premetto di essere a conoscenza della banalità del problema,
>ma essendo un novizio, mi affido volentieri a chi mi vorrà aiutare:
>come da titolo, dovendo sviluppar euna funzioncina nel pageload
>nn mi ritrovo gli Id dei controlli creati in una pagina, ma ad
>esempio solo gli id dei sqldatasource usati nella stessa, so
>che mi sto perdendo in un bicchiere d'acqua ma spero in un vs
>salvagente...
Potresti spiegare meglio? Non ho proprio capito quale sia il tuo problema..

>tnx
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

è una cosa talmente strana che nn riesco nemmeno io a capirla e a spiegarla...
praticamente in un acontent page voglio elaborare il contenuto di una formview dopo un postback ma l'intellisense nn mi da i controlli presenti nel form (textbox,ddlist,etc...) ma solo i sqldatasource

alx_81 Profilo | Guru

>è una cosa talmente strana che nn riesco nemmeno io a capirla
>e a spiegarla...
>praticamente in un acontent page voglio elaborare il contenuto
>di una formview dopo un postback ma l'intellisense nn mi da i
>controlli presenti nel form (textbox,ddlist,etc...) ma solo i
>sqldatasource
e hai messo i runat="server" vero?
Se sì, prova a switchare dal designer al codice, magari il file di design si aggiorna...

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

si si fatto, anche riavviato vs2005,ti posto il codice della pagina magari così te ne accorgi subito:


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

alx_81 Profilo | Guru

>si si fatto, anche riavviato vs2005,ti posto il codice della
>pagina magari così te ne accorgi subito:
Credo che il problema sia perchè i tuoi controlli sono dentro ad un Wizard.. che già di suo è un controllo.
Quindi non lo vedi nel codebehind. L'unico modo per accedere è tornare l'istanza a runtime con una findcontrol lanciata dall'interno dello step del wizard.

Leggi qui per la findControl:

http://msdn.microsoft.com/it-it/library/system.web.ui.control.findcontrol(VS.80).aspx
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

Ci stavo quasi arrivando TNX!!!

alx_81 Profilo | Guru

>Ci stavo quasi arrivando TNX!!!
se ti è stato di aiuto accetta la risposta che chiudiamo il thread!
------------------EDIT---------------------
ok
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

Ho provato ad utilizzare il sistema che mi hai suggerito ma ora questo codice mi genera l'errore: Riferimento a un oggetto non impostato su un'istanza di oggetto.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim DDL_tipo_operazb As DropDownList = Wizard.FindControl("DDL_tipo_operaz") Dim Label11b As Label = Wizard.FindControl("Label11") If IsPostBack Then Label11b.Text = DDL_tipo_operazb.SelectedItem.Value End If End Sub

Dove sbaglio?!?!?!

alx_81 Profilo | Guru

>Ho provato ad utilizzare il sistema che mi hai suggerito ma ora
>questo codice mi genera l'errore: Riferimento a un oggetto non
>impostato su un'istanza di oggetto.

>Dove sbaglio?!?!?!
Devi entrare nello step, perchè i controlli sono lì..
La FindControl non è ricorsiva e quindi ti devi prima spostare sullo step in cui hai il controllo e cercarlo con la FindControl.
Ogni wizard ha una proprietà WizardSteps che è una collection di WizardStep.

La reference del WizardStep è qui:

WizardStep Class
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.wizardstep.aspx



--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

Ho provato così ma niente...

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

alx_81 Profilo | Guru

>Ho provato così ma niente...
Hai l'errore di OBJECT NOT SET..?
se sì, lo hai per l'ActiveStep oppure per il controllo?
Prova a vedere se l'activeStep è nothing..
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

Per il controllo direi:

Label11.Text = DDL_tipo_operazb.SelectedValue

avevo già provato a prendere ActiveStep.Title ed era ok...



---Edit---

vedo che cmq in giro molti hanno problemi con sti wizard.....

alx_81 Profilo | Guru

>Per il controllo direi:
La FindControl ti torna nothing?

------------ EDIT -------------------
Ho visto che hai una FormView..
Devi scendere di livello.. Quindi il primo FindControl deve essere fatto per la FormView..
Non puoi direttamente dal wizardStep.
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

FATTO! Grande!!!

curiosità: ma da dove hai visto che utilizzavo una formview???

alx_81 Profilo | Guru

>curiosità: ma da dove hai visto che utilizzavo una formview???
Dall'aspx che mi avevi postato.. l'ho riguardato visto che non poteva non andare
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

Cavolo nn va di nuovo... ho fatto delle modfiche direi nn così strutturali da poter prevedere un errore:

Dim Formview_t As New FormView Formview_t = Wizard.WizardSteps(0).FindControl("FormView1") Dim DDL_tipo_operazb As New DropDownList DDL_tipo_operazb = Formview_t.FindControl("DDL_tipo_operaz") Dim txt_importo_t As New TextBox txt_importo_t = Formview_t.FindControl("txt_importo") Dim txt_contanti_t As New TextBox txt_contanti_t = Formview_t.FindControl("txt_contanti") Select Case DDL_tipo_operazb.SelectedValue Case "0" 'PRESTAZIONE NORMALE txt_importo_t.Enabled = True txt_importo_t.BackColor = Drawing.Color.White txt_contanti_t.Enabled = True txt_contanti_t.BackColor = Drawing.Color.White

e da NULL sull'oggetto DDL_tipo_operazb

dove la sbatto la testa?!?!?!?

Formview_t me lo crea tranquillamente ma quello che sta sotto no...

alx_81 Profilo | Guru

>Cavolo nn va di nuovo... ho fatto delle modfiche direi nn così
>strutturali da poter prevedere un errore:
>dove la sbatto la testa?!?!?!?
Quando lo ottieni l'errore.. cerca di essere più dettagliato..

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

Errore: "Riferimento a un oggetto non impostato su un'istanza di oggetto."

alla riga:
Select Case DDL_tipo_operazb.SelectedValue

alx_81 Profilo | Guru

>Errore: "Riferimento a un oggetto non impostato su un'istanza
>di oggetto."
Ripeto, quando?
primo caricamento?
Cambio di step wizard?

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

samar Profilo | Senior Member

Ah ok scusa, al primo caricamento, ho tolto il controllo sul postback...

RISOLTO!
sono le 18 e ormai sono fuso....solo problemi nella compilazione....
ancora grazie!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5