Originariamente inviato da alka
Non ho il tempo di controllare il codice che hai scritto, ma mi limito a fornirti alcune indicazioni di massima sul
code behind.
In realtà, il termine si riferisce solamente alla possibilità di separare il codice lato server che gestisce la visualizzazione della pagina dalla visualizzazione della pagina stessa, niente di più.
Quando trovi tag lato server che includono il carattere
#, hai a che fare con espressioni di
data binding; il data binding è il meccanismo che consente di collegare controlli a sorgenti di dati; generalmente, è il codice del controllo che, una volta compilato, preleva i dati e li restituisce sottoforma di HTML al browser chiamante.
Nel tuo caso, l'uso di tag
<%# ... %> serve per definire il punto (e il formato, in certi casi) in cui un elemento proveniente dalla sorgente dati viene visualizzato all'interno di un
template (modello); ciascun template non fa altro che definire il contenuto HTML da ripetere per ciascun elemento da visualizzare.
La pagina aspx rappresenta comunque la classe di una pagina che deve essere compilata e che deriva dalla classe che hai inserito (ed eventualmente compilato, se vuoi) in un file sorgente esterno: questo è il
code behind.
Non entro nel merito del tuo problema, poichè dovrei copiare il tuo codice o analizzarlo a fondo per scoprire il problema, dato che ti sei limitato a dire che "ti va in errore" senza spiegare quale errore ti viene restituito.
A parte questo, c'è la possibilità di inserire valori lato server senza usare le espressioni di databinding: basta dichiarare nel template un elemento HTML aggiungendo ad esso la clausola
runat="server". All'interno dell'evento
ItemDataBinding di ciascun controllo associato ai dati (il
Repeater, nel tuo caso) è possibile ottenere un riferimento al controllo lato server che hai inserito "chiamandolo per nome" attraverso il metodo
e.Item.FindControl() e impostare le proprietà del controllo attraverso il codice.
Nei casi più complessi, adotto questa tecnica per massimizzare le possibilità di personalizzazione lavorando completamente tramite codice C# dal lato server.
Approfondisci gli argomenti citati consultando la
Microsoft .NET SDK Documentation per ottenere suggerimenti ed esempi di utilizzo.
Ciao!