21 messaggi dal 09 ottobre 2010
Ciao,
come dal titolo ho un problema di visibilita' del mio user control, che ho registrato nel web.config, in una pagina aspx in cui lo voglio inserire dinamicamente.
Mi sapreste indicare come referenziare il controllo da codice per poterlo utilizzare?
Grazie
Apophis wrote:
Mi sapreste indicare come referenziare il controllo da codice per poterlo utilizzare?

perché un controllo possa essere utilizzato, devi impostare l'attributo ClassName:
<%@ Control Language="C#" ClassName="Foo" %>
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
21 messaggi dal 09 ottobre 2010
Daniele Bochicchio ha scritto:

perché un controllo possa essere utilizzato, devi impostare l'attributo ClassName:
<%@ Control Language="C#" ClassName="Foo" %>
.


Ho inserito l'attirbuto "ClassName" nel mio controllo, ma ancora, da code behind, non riesco ad istanziare il controllo, come errore ho:

- The type or namespace name 'UIGridView' could not be found (are you missing a using directive or an assembly reference? -

Dove UIGridview e' il mio user control, mentre dalla pagina .aspx il controllo e' perfettamente visibile.


Dove sbaglio?

Grazie
Apophis wrote:
Dove sbaglio?

occhio che è necessario caricarlo comunque con LoadControl. il tipo ti serve per poi impostare le proprietà. vedi:
http://www.aspitalia.com/script/481/Aggiungere-User-Control-LoadControl.aspx .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
21 messaggi dal 09 ottobre 2010
Infatti nel "Page_Load" ho inserito il codice che dovrebbe istanziare il controllo nella pagina, anzi nel placeholder presente nella pagina:

UIGridView myUserControl = (UIGridView)Page.LoadControl("UIGridView.ascx");
myUserControl.ID = "UIGridView1";
PlaceHolder1.Controls.Add(myUserControl);

Ma il problema e' che il web control "UIGridView" non viene riconosciuto.
21 messaggi dal 09 ottobre 2010
Mi sorge un dubbio... se ho lo user control nel path: ~/Controls/GridView/UIGridView.ascx e la pagina e' in ~/Controls/Tab/, nell'attributo ClassName nello user control deve avere scritto anche il path, oppure posso inserire qualsiasi testo?
usa
<%@ Reference VirtualPath="~/My.ascx" %>

nella pagina, così quando compila sa dove andarlo a beccare.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
21 messaggi dal 09 ottobre 2010
Daniele Bochicchio ha scritto:

<%@ Reference VirtualPath="~/My.ascx" %>


Si, lo becca... ma ora ho l'errore di "Circular file references are not allowed.".
Per questo cerco di inserire a runtime il mio controllo, ho dei problemi con il controllo, lo vorrei inserire ricorsivamente...

Spiego brevemente:
data una pagina aspx -> ho lo user control "aspx1" in cui viene richiamato lo user control "aspx2" in cui viene richiamato a sua volta un terzo uc "aspx3" che richiama "aspx1".
Nello uc aspx3 vorrei inserire lo user aspx1 a runtime per ovviare il problema di referenza circolare.

Sbaglio approccio?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.