169 messaggi dal 13 ottobre 2004
www.astrofoto.it
ciao a tutti.
Ho questa esigenza: creare un form con alcuni campi (dropdown, textbox, label, ecc...), stilizzarlo con il css (che posso scrivere direttamente nella pagina aspx o inserirlo in un file .css esterno), scrivere tutto il codebehind per farlo funzionare, impachettare il tutto in una DLL (o in quel che serve) e infilarlo nella toolbox di VS. Così, tutte le volte che mi serve quel tipo di form non devo far altro che trascinarlo nella pagina, a prescindere dal progetto, e ho il mio form bello e funzionante, già pronto.

è possibile fare una cosa del genere?

in questo momento, per ottenere la stessa cosa, devo creare la pagina aspx nel nuovo progetto e fare il copia/incolla di tutto l'html e il codebehind dal vecchio progetto. è possibile creare un controllo personalizzato pronto all'uso?

grazie a tutti!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
impachettare il tutto in una DLL

sì, Visual Studio ti offre un template di progetto chiamato "Controllo Server ASP.NET" (che essendo una class library diventa una dll alla compilazione).
Qui trovi un articolo che ti guida passo passo alla creazione.
http://msdn.microsoft.com/en-us/library/yhzc935f.aspx

ciao,
Moreno
Modificato da BrightSoul il 14 gennaio 2014 08.06 -

Enjoy learning and just keep making
169 messaggi dal 13 ottobre 2004
www.astrofoto.it
ciao Moreno,
grazie per la risposta.

Il metodo che mi hai indicato, però, non mi permette di stilizzare i controlli con il CSS; ovvero, non posso "trascinare" nella pagina la mia textbox, stilizzarla con il CSS, metterci a fianco il pulsante (stilizzarlo con il CSS), scrivere il codice VB dietro al pulsante e tenermi questo "pacchettino" sempre a disposizione nella toolbox...

Il metodo che mi hai indicato mi fa creare un controllo derivando da classi esistenti ma poi come posso stilizzare i controlli e vederli per sapere se tutto sta venendo come voglio?

grazie!
Marco
6 messaggi dal 06 luglio 2011
Ciao Marco,
esistono due tipi di controlli personalizzati UserControls e Custom Controls.
I primi ti permettono di utilizzare il visual editor di Visual Studio come fai con qualsiasi altra pagina, vengono salvati all'interno delle cartelle dell'applicazione come file ascx e non possono quindi essere aggiunti alla toolbox.
Questo tipo di controlli non è pre compilato ma viene compilato insieme al resto dell'applicazione.
Puoi approfondire qui:
http://msdn.microsoft.com/en-us/library/fb3w5b53(v=vs.100).aspx

I custom control invece sono quelli che ti ha consigliato BrightSoul.
Essendo classi senza la parte di markup non hanno il supporto al visual editor, quindi tutte le proprietà relative all'html, css e javascript gliele devi iniettare via codice all'interno dei vari metodi render.
Puoi approfondire qui:
http://msdn.microsoft.com/en-us/library/f820d25y(v=vs.100).aspx

Ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Marco,

mbastoni ha scritto:

ovvero, non posso "trascinare" nella pagina la mia textbox, stilizzarla con il CSS, metterci a fianco il pulsante (stilizzarlo con il CSS)

No, non puoi farlo in maniera visuale perché, come dice Dario, non puoi avvalerti del designer. Puoi comunque aggiungere tutti i controlli, compreso il codice CSS da codice C#/VB.NET, in maniera imperativa.

Creare il form in questo modo sarà di certo meno intuitivo ma, se decidi che ne vale la pena, potrai riutilizzare il controllo come chiedevi.
I controlli di ASP.NET, ad esempio, sono stati implementati in questo modo. Ad esempio, potresti guardare l'implementazione del controllo asp:Login, che è anch'esso un form contenente textbox e bottoni. Usa un reflector come JustDecompile per trovarlo e capire come è stato implementato.
In particolare osserva come la classe Login derivi da CompositeControl e crei i suoi controlli dentro CreateChildControls.

Se decidi di seguire questa strada, probabilmente dovrai anche esporre delle proprietà per consentirti qualche personalizzazione, tipo impostare classi CSS e così via. Includere delle regole CSS insieme al controllo potrebbe legarti troppo nel momento in cui, ad esempio, volessi disporre alcuni dei controlli del form in maniera diversa.

Guarda come il controllo Login fa fronte a questa necessità permettendoti di "accedere" al suo contenuto.
http://visualstudiomagazine.com/articles/2009/10/15/customizing-the-login-control.aspx

Tieni conto di tutte queste situazioni nel decidere se è effettivamente conveniente riutilizzare il controllo in questo modo.
In alternativa, potresti anche decidere di crearti uno snippet in Visual Studio e trascinarlo nella pagina.


ciao,
Moreno
Modificato da BrightSoul il 15 gennaio 2014 08.30 -

Enjoy learning and just keep making

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.