3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Un uso molto importante è ad esempio per la generazione di liste, utilizzando >ul< e >li<, cosa impossibile con gli altri Data Controls che aggiungono altro codice HTML, come visualizzato sempre nel codice riportato qualche riga in basso.
In definitiva, se dovete ripetere un vostro layout, il Repeater è la scelta migliore.
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<SCRIPT language="C#" runat="server">
// stringa di conn
string connstring = @"server=localhost;database=master;trusted_connection=true;";
void Page_Load () {
bindData() ;
}
// routine di estrazione dati
void bindData () {
// effettuo il DataBinding sul control
// connessione
SqlConnection conn = new SqlConnection(connstring);
// query
SqlDataAdapter query = new SqlDataAdapter("SELECT * FROM rubrica", conn);
// creo il dataset
DataSet querydataset = new DataSet();
query.Fill(querydataset);
myRepeater.DataSource = querydataset;
myRepeater.DataBind ( );
}
</SCRIPT>
<asp:Repeater id="myRepeater" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%# DataBinder.Eval(Container.DataItem, "nome") %>
- <%# DataBinder.Eval(Container.DataItem, "telefono") %>
- <%# DataBinder.Eval(Container.DataItem, "indirizzo") %>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
Analizziamo il DataList
Per complessità, a ruota del Repeater, segue il DataList. Di default l'output viene effettuato visualizzando ogni riga all'interno di una tabella HTML.
Ciò questo control che ha in più rispetto a DataGrid e Repeater è la possibilità di specificare quanti record per riga devono essere inseriti, attraverso la proprietà RepeatColumns .
Inoltre permette di specificare il verso di ripetizione degli elementi, se orizzontale o verticale, attraverso la proprietà RepeatDirection .
Nell'allegato sono presenti due esempi di utilizzo del DataList, mentre qui sotto potete vedere come vari l'output a seconda della combinazione di questi due proprietà.

Il DataList supporta i seguenti tipi di template:
- alternatingItemTemplate
- ItemTemplate
- EditItemTemplate
- HeaderTemplate
- FooterTemplate
- SeparatorTemplate
Come si può notare sono gli stessi del Repeater, ad eccezione di EditItemTemplate, che è una novità. In pratica non è altro che un particolare template che viene visualizzato quando il control viene messo in modalità Edit , ovvero di modifica dei dati contenuti.
altra differenza rispetto a Repeater, come già anticipato, riguarda il supporto diretto per gli stili, che possono essere specificati attraverso le proprietà HeaderStyle , FooterStyle , ItemStyle , etc. Si tratta di proprietà che ereditano da TableItemStyle , contenuto nel namespace System.Web.UI.WebControls e che permettono di modificare colore di sfondo, colore del testo, dimensione, eventuale bordo, stili da applicare e così via.
Sfruttando queste proprietà ogni template può avere stili differenti e quindi una resa grafica diversa.
Un esempio pratico di tutto questo è il cambio del colore di sfondo in maniera alternata, utile per migliorare l'usabilità di liste abbastanza lunge di record, oppure per visualizzare meglio la riga selezionata in modifica.
Si può specifare un ItemTemplate con un certo colore di sfondo e per cambiare quello dell'alternatingItemTemplate non è necessario specificare un nuovo template (con conseguente ripetizione dello stesso codice utilizzato in precedenza) ma è sufficiente specificare lo stile da utilizzare direttamente all'interno della proprietà alternatingItemStyle .
E' così possibile conservare un solo codice per i due template, ma modificare la resa grafica del template alternato.
altra proprietà interessante, presente solo nel DataList, è RepeatLayout , che va di pari passo con RepeatDirection e RepeatColumns poco fa menzionate.
Consente di specificare, se RepeatDirection è su Vertical e RepeatColumns su 1 (i valori di default) la modalità di rendering del DataList. Di default questo valore è su Table , che è poi il motivo per cui viene creata una tabella con i dati estratti dalla fonte, mentre è possibile impostare questo valore su Flow ed utilizzare un
quale separatore tra ogni record.
Cambiare lo stato del DataList: edit mode
Dunque il DataList a differenza del Repeater può avere stati diversi, perché permette di visualizzare i record anche in modalità di modifica .
Per fare questo è necessario impostare la proprietà EditItemIndex sulla riga corrispondente al record che si vuole modificare, tenendo a mente che si tratta di un insieme zero-based , ovvero il cui indice parte da zero. E' inutile sottolineare che è necessario specificare un EditItemTemplate , perché a differenza del DataGrid il DataList non implementa automaticamente un sistema che permetta di utilizzare una formattazione di default qualora non ne venga specificata una.
Per prima cosa dunque è necessario procedere ad associare le funzioni corrispondenti agli eventi OnEditCommand , OnUpdateCommand , OnCancelCommand , rispettivamente utilizzati per selezionare un record, aggiornare un record o annullare la selezione. Tutte e tre le funzioni ereditano da DataListCommandEventHandler .
Sfrutteremo questi eventi per eseguire il codice associato ad ogni diverso stato del control.
3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà

Stampa
Download



