Errore in fase di design web form con oggetto costomizzato...

venerdì 18 gennaio 2008 - 17.40

AndreaKpr Profilo | Senior Member


Ciao Raga.
Domandone del venerdi sera...
Mi sono creato un webcontrol contenente una label, una textbox ed un bottone...
Ho il problema che trascinandolo in desing di una form, Vs2005 va in errore e non è capace di disegnarmelo correttamente.
La domanda qual'è il codice che vs2005 esegue quando trascino l'oggetto ???
Grazias.

freeteo Profilo | Guru

ciao,
il codice che esegue è il "load" e i settaggi delle proprieta' e anche il "RenderContent", quindi praticametne quasi tutto.
Mi viene da pensare che hai fatto qualche codice, che magari che ha dei valori nulli e quindi va in errore.

Esiste una proprieta' "DesignMode" che ti dice se è visual studio che esegue quel codice, o il programma a runtime, prova a vedere se facendo qualche controllo di questo tipo, insieme a qualche controllo sui dati non nulli, il problema si risolve.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

AndreaKpr Profilo | Senior Member

Grazie per la risposta...

>ciao,
>il codice che esegue è il "load" e i settaggi delle proprieta'
>e anche il "RenderContent", quindi praticametne quasi tutto.
>Mi viene da pensare che hai fatto qualche codice, che magari
>che ha dei valori nulli e quindi va in errore.

ma con load intendi lo stesso evento che avviene quando carico la pagina richiesta da client ???
Non ho pensato in effetti al codive che viene eseguito sui settaggi delle proprietà, e daro un occhiata anche agli
aventi di render (compreso il prerender...)

>Esiste una proprieta' "DesignMode" che ti dice se è visual studio
>che esegue quel codice, o il programma a runtime, prova a vedere
>se facendo qualche controllo di questo tipo, insieme a qualche
>controllo sui dati non nulli, il problema si risolve.

ma questa proprioetè "DesignMode" è a livello di visual studio, a livello di applicativo o a livello di controllo ???
Ciao

freeteo Profilo | Guru

>ma con load intendi lo stesso evento che avviene quando carico
>la pagina richiesta da client ???
>Non ho pensato in effetti al codive che viene eseguito sui settaggi
>delle proprietà, e daro un occhiata anche agli
>aventi di render (compreso il prerender...)
si si, vengono eseguiti da visual studio, perche' cmq tu quello che visualizzi dentro alla finestra di anteprima di visual studio è il controllo, magari privo di dati, ma cmq il "Render HTML" del tuo controllo.


>ma questa proprioetè "DesignMode" è a livello di visual studio,
>a livello di applicativo o a livello di controllo ???
si dove vuoi, è una proprieta' che ti dice se sei dentro a visual studio o meno, la puoi usare nel "RendeContent" del controllo, o nel set delle proprieta' o dove vuoi, e ti serve per evitare magari di fare del codice tipo connessioni a db etc...cosa che a design non ti servono...


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

AndreaKpr Profilo | Senior Member


Ciao alla fine ce l'abbiamo fatta ...
Ho dovuto innanzitutto debaggare in runtime la sequenza degli eventi...
Dopo di che per ogni oggetto all'interno del controllo ho analizzato e commentato il codice con la proprioetà DesingMode.
Chi l'ha dura la vince, infatti sull'evento "OnSetSettings" di un controllo vi era una comando che non paiaceva ...

Table.Rows(0).Cells(0).Style("padding-right") = System.Web.UI.WebControls.Unit.Pixel(10).ToString()

Fatto sta che senza riesco a vedere l'oggetto in design, il che non è poco perche la maschera è piuttosto complessa...

Nota personale : ho perso tutta la mattina dietro al problema, ma l' 80% l'ho perso andando dietro all'errore di render
che vs2005 buttava fuori :

"Lo stato di sessione può essere utilizzato solo se enableSessionState ha valore true,
in un file di configurazione o nell'istruzione Page.
Accertarsi inoltre che System.Web.SessionStateModule o un modulo di stato sessione personalizzato
sia incluso nella sezione <configuration>\<system.web>\<httpModules> della configurazione dell'applicazione."

Inutile dire che non ci azzeccava nulla con il mio prb....

Ciao e grazie.

freeteo Profilo | Guru

>
>Ciao alla fine ce l'abbiamo fatta ...
>Ho dovuto innanzitutto debaggare in runtime la sequenza degli
>eventi...
>Dopo di che per ogni oggetto all'interno del controllo ho analizzato
>e commentato il codice con la proprioetà DesingMode
cosa vuoi dire, la proprieta' "DesignMode" non funziona correttamente? se è cosi' prova a verificare che il processo sia visual studio, ricordo di avere usato in passato questo codice:

public static bool IsDesignMode { get { return Process.GetCurrentProcess().ProcessName.Contains("devenv"); } }

mi ero fatto questa proprieta' statica e forse adesso ricordo anche perche

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5