Proprietà Enabled e Visible

martedì 10 maggio 2011 - 12.07

darkeric Profilo | Senior Member

Ciao Forum

mi succede una cosa strana alla quale spero possiate dare risposta.

Nella mia pagina aspx ho diversi controlli

tre dei quali (label, uploadfile, button) sono disabilitati

ho un button che serve per abilitare i tre controlli però
quando ci clicco non succede nulla.
Da debug vedo che il codice viene però eseguito
-
FileUpload1.Enabled = True
Button15.Enabled = True
Label28.Enabled = True
-
stessa cosa succede con la proprietà visible
tranne che a visualizzarli li visualizza ma quando dovrebbero rinascondersi
rimangono visibili.

Resto in attesa

saluti
Fabio


Programmatore per passione non per professione!

Gluck74 Profilo | Guru

be, ci vorrebbe un po di codice per vedere eventuali errori.
Contorlla il ciclo di vita della pagina, e vedi se le righe di codice che hai scritto, non vengono "annullate" da altre situazioni che avvengono dopo.

Ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

darkeric Profilo | Senior Member

Grazie per la risposta, verifico e ti faccio sapere!

EDIT:

Ho verificato in debug tutto è corretto

al primo caricamento della pagina disabilita i controlli
alla pressione del pulsante per abilitarli
salta il codice poichè trattasi di Postback
e passa al codice che li abilita

restano però disabilitati

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Il pulsante che dovrebbe abilitare i controlli è Button14

cosa può essere?
Programmatore per passione non per professione!

Gluck74 Profilo | Guru

in pratica:
FileUpload1.Enabled = True Button15.Enabled = True Label28.Enabled = True FileUpload1.Focus()

A vedere questo codice non sembra esserci nessun errore.
La pagina è semplice o usa degli updatePanel?

Ci sono altri eventi legati alla pagina?

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

darkeric Profilo | Senior Member

Giusto ti spiego:

La masterpage ha nel corpo 1 contentplaceholder
che nella pagina profilo e personalizzato cosi:

1 Div che contiene 1 updatepanel con all'interno delle textbox , label, e button (fra cui il button14 che abiliterebbe gli altri)

2 Div non all'interno dell' update panel poichè l' uploadfile non funzionerebbe
con 1 tre controlli incriminati

all'inizio ho provato con un panel ma non si occultava lo stesso

-
Altri eventi sono all'interno dell' update panel
in pratica alla pressione del tasto modifica
le label vengono sostituite con delle textbox
e la cosa strana è che le label vengono nascoste e le textbox appaiono
viceversa quando si salva o si annulla (sempre button che si rendono visibili alla pressione di modifica)
ritorna tutto come prima
quindi all' interno del updatepanel la proprietà visible funziona.

EDIT:

Caspita mi hai fatto venire il lampo...

non so perchè ma spostando il button14 fuori dall' updatepanel funziona tutto!!!

Grazie ancora

Ciao
Programmatore per passione non per professione!

Gluck74 Profilo | Guru

allora il problema stava proprio nell'updatePanel.

il funzionamento è apparentemente semplice, ma a volte può portare a complicare in maniera strana la pagina se non si presta attenzione.

In pratica l'updatePanel è un contenitore che "spezza" la pagina in parti aggiornabili e parti non aggiornabili sul browser (permettimi questa definizione non proprio precisa).
Cosa succede se, come nel tuo caso, hai dei controlli ed un bottone dentro un updatePanel?
Succede che il bottone fa scattare il Postback, ma asincrono questa volta. Ciò vuol dire che il codice sul server viene eseguito comunque tutto perché è pur sempre un postBack, ma viene restituito ed aggiornato solo l'HTML all'interno del contenitore updatePanel (che è trasformato in un DIV).
Ecco perché i tuoi controlli non cambiavano, perché erano fuori.
Ora, avendo messo fuori anche il pulsante, parte il PostBack classico (sincrono) e si ridisegna l'intera pagina, quindi anche le tue modifiche.

Ciao Ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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