my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Windows 8
|
Libro WP7
|
Libro HTML5
|
Corso HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
ListView Eval e DataFormat
in
.NET Framework
>
ASP.NET 3.5
Ultimo messaggio
1
2
>>
PadovaBoy
il 22 febbraio 2009 alle 01:45
575 messaggi
dal 23 giugno 2003
www.padovaboy.it
Salve a tutti!
E' un sacco che non scrivo qui ma il tempo scarseggia come sempre!
Ho un dubbio e mi chiedevo se magari qualcuno ha trovato un buon modo per risolverlo:
Creando una Listview che non fa altro che mostrare una serie di importi tramite Eval(""), mi son trovato di fronte la necessità di formattare un sacco di volte l'output.
Ho sfruttato la possibilità di Eval di passare la "string-formatter", però non è proprio il suo visto che devo farlo per ogni eval e poi magari un domani voglio cambiare il tipo di formattazione...e sai che noce..
"pre-formattare" il datasource non mi pare carino.
Usare una expression registrata attraverso un'expressionBuilder mi pare più carino ma cmq ancora macchinoso.
Possibile che non esiste soluzione più semplice?
Ps: io oramai uso la ListView per ogni cosa anche per una maschera di details (in pratica assegno una lista con 1 solo elemento).
Voi come altro fate?
Tnx at all!
(ps saluti a tutti ma sopratutto a Nostromo che m'è sempre stato d'aiuto al "grande golia" a cui prima o poi andrò a offrire na birra :P)
www.padovaboy.it dal 2001 con furore :D
Rispondi
Quoting
nostromo
il 23 febbraio 2009 alle 10:37
14.775 messaggi
dal 18 febbraio 2004
Contributi
www.soluzioni4d.it
|
Blog
ciao ricambio il saltuo è un pezzo che non vedevo postare sul forum.
personalmente realizzerei un controllo custom, o meglio ancora un ControlAdapter in modo che lo puoi agganciare ad ogni controllo esistente.
pensa che ho usato i control adapter ad esempio per iniettare javascript nell textbox che avevano un numero di caratteri limitato.
insomma i campi d'utilizzo sono molteplici e hai il vantoggio di non modificare una riga nelle pagine
ciao marco
Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio
http://nostromo.spaces.live.com/default.aspx
Rispondi
Quoting
PadovaBoy
il 3 marzo 2009 alle 16:13
575 messaggi
dal 23 giugno 2003
www.padovaboy.it
Ciao Marco,
perdona per il ritardo della mia risposta dovuta un pò a raffreddore, un pò troppe cose da fare e un pò perché sto cercando info su ControlAdapter.
Ho capito a cosa serve e me lo sono studiato un pò ma non ne ho mai fatto uno.
Onestamente non mi piace come idea perché (sempre tenendo conto che potrei non aver capito una mazza :D):
- legherei il controlAdapter ad un webcontrol (come List) inesorabilmente via web.config (il suo bello ma anche il brutto), rischiando magari di dimenticarmi di averlo implementato e impazzire se le cose non vanno nel verso giusto
- non avrei controllo "granulare": potrei anche dirgli tutti gli oggetti che sono float vanno renderizzati in una certa maniera...ma poi se voglio fare delle eccezzioni?
etc.. etc..
Pensandoci però missà che la cosa più semplice sarebbe fare un bel "SmartPanel" ovvero ereditare un panel e renderlo "speciale": ovvero ogni figlio renderizzato all'eval dovrà appunto subire una certa trasformazione.
Così se lo definisco so che c'è e so cosa va a influenzare (i figli).
Che ne pensi?
E sopratutto...come lo realizzo? ehhehehe :P uff madonnina quanta roba da studiare! :)
www.padovaboy.it dal 2001 con furore :D
Rispondi
Quoting
nostromo
il 3 marzo 2009 alle 16:25
14.775 messaggi
dal 18 febbraio 2004
Contributi
www.soluzioni4d.it
|
Blog
per me la soluzione migliore rimane sempre il ControlAdapter.
lo leghi al web.config ed è quello il bello, non modifichi nessuna pagina.
ad esempio crei un ControlAdapter per la TextBox, vista a possivilità del ControlAdapter di leggere gli attibuti del controllo che lo utilizza puoi modificare il comportamento.
poi ti puoi sempre creare dei tuoi controlli che già formattono i dati come desideri.
ciao marco
Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio
http://nostromo.spaces.live.com/default.aspx
Rispondi
Quoting
PadovaBoy
il 3 marzo 2009 alle 16:31
575 messaggi
dal 23 giugno 2003
www.padovaboy.it
Hmmm forse mi manca qualcosa allora, perché con il codice che ho visto e quello che ho letto non ci azzecco molto con quel che dici.
Es: io ho la situazione di una ListView:
<asp:ListView belblalblbasl...>
...
<ItemTemplate>
blablbalblalb...
<%#Eval("Importo1")%>
<%#Eval("Importo2")%>
<%#Eval("Importo3")%>
<%#Eval("Importo4")%>
<%#Eval("Importo5")%>
<%#Eval("Importo6")%>
blablablabla...
Gli importi vorrei formattarli quindi dovrei trasformare il tutto in:
<%#Eval("Importo1", "{0:C2}")%>
A rigor di logica quindi per fare qualcosa di "automatizzato" dovrei formulare una espressione che in "meta-italiano-linguaggio" dovrebbe essere:
1) becca la ListView
2) per il suo ItemTemplate
3) controlla l'invocazione dell'Eval
4) Se l'Eval mi sputa un valore che risulta essere un float
5) allora formatta il valore in una certa maniera
come meeeeezzzeeeega dovrei fare? :)
www.padovaboy.it dal 2001 con furore :D
Rispondi
Quoting
nostromo
il 3 marzo 2009 alle 16:44
14.775 messaggi
dal 18 febbraio 2004
Contributi
www.soluzioni4d.it
|
Blog
puoi fare anche come hai descritto ma mi sembra la strada più lunga enon è u na passeggiato beccare l'eval quando viene valutato.
usa Eval associato ad una proprietà di un controllo, creati magari un tuo controllo che ederiti da WebControl, lo usi come un semplice segnaposto, poi la logica di formattazione la metti nel ControlAdapter.
se riesco a liberarmi ti faccio un esempio
ciao marco
Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio
http://nostromo.spaces.live.com/default.aspx
Rispondi
Quoting
PadovaBoy
il 3 marzo 2009 alle 17:17
575 messaggi
dal 23 giugno 2003
www.padovaboy.it
HMMMMMMMMMMMMMMMMMM ok ora è più chiaro.
Te dici:
Creati una sorta di "label" per formatazzioni tipo:
public class FormattedLabel : WebControl
public String Text{}
public void Render..etc...
E lo uso nel template magari di ListView (solo per esempio) così:
<my:FormattedLabel id="Formatted" Text='<%#Eval("Importo")%>' />
Poi con l'uso di un Adapter posso andare a modificare il rendering di FormattedLabel magari dicendogli di formattare la proprietà Text in un modo piuttosto che in un altro.
Questo verrebbe in effetti comodo qualora decidessi di applicare logiche differenti a FormattedLabel spostandone la logica sull'adapter esterno (che appunto posso cambiare, togliere o mettere): vedi creare un "doppione" del portale per un'altra lingua o appunto per fare in modo che l'adapter "capisca" la lingua corrente e modifichi il comportamento al volo di FormattedLabel...
E' interessante...certo non è come scrivere semplicemente <%#Eval("importo")%>....
Cmq è così che la pensavi?
www.padovaboy.it dal 2001 con furore :D
Rispondi
Quoting
nostromo
il 3 marzo 2009 alle 17:23
14.775 messaggi
dal 18 febbraio 2004
Contributi
www.soluzioni4d.it
|
Blog
si piò o meno farei così, solo che farei una proprietà Value di tipo Object almeno puoi passare qualsiasi tipo di venga voglia di formattare
ciao marco
Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio
http://nostromo.spaces.live.com/default.aspx
Rispondi
Quoting
1
2
>>
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
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.
Community
Effettua il login!
Hai dimenticato la password?
Ultimi messaggi
Trovare un controllo all'interno di un gridview
sessioni scadute
variabile session
(3)
registrazione utenti
(5)
problema con il controllo create user wizard
(3)
Aggiornare contenuto compreso nei tag <asp:panel> e </asp:panel> di una pagina web, richiamandola da area riservata.
(5)
inserimento dati da form
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Web Camp - ASP.NET MVC 3 (Community Days 2012)
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Le novità di ASP.NET 4.5 (Community Days 2012)
Effettuare il backup dell'event viewer con LINQ to XML
Aprire una popup in Silverlight
Introduzione ad Entity Framework
Disegnare un'applicazione a servizi con Entity Framework e WCF
Media
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Metro Style App per Windows 8 con HTML e Javascript
Tutti i media
In evidenza
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Aprire una popup in Silverlight
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Metro Style App per Windows 8 con HTML e Javascript
Aggiungere un handler globale per le chiamate AJAX di ASP.NET MVC
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network