Creazione di una riga personalizzata in un controllo server Web DetailsView
Aggiornamento: novembre 2007
Il controllo DetailsView consente di generare automaticamente righe dai campi forniti dall'origine dati. È inoltre possibile identificare in modo specifico un insieme di righe da visualizzare anziché generarle automaticamente. Può tuttavia verificarsi il caso in cui risulti necessario personalizzare la modalità di visualizzazione di una singola riga. A tale scopo è possibile creare un oggetto TemplateField per specificare un layout personalizzato.
Creazione di modelli
Un oggetto TemplateField consente di specificare modelli contenenti codice e controlli per la personalizzazione del layout e del comportamento di una riga in un controllo DetailsView. Utilizzando un ItemTemplate, è possibile specificare il layout da utilizzare quando viene visualizzata una riga mediante il controllo DetailsView. Per specificare un layout personalizzato da utilizzare quando gli utenti inseriscono una nuova riga di dati, è possibile creare un oggetto InsertItemTemplate. Per specificare un layout personalizzato da utilizzare quando gli utenti modificano una riga di dati, è possibile creare un oggetto EditItemTemplate.
Il modello può contenere codice, controlli server Web e pulsanti di comando. Per ulteriori informazioni sui modelli, vedere Modelli dei controlli server Web ASP.NET.
Associazione dati in un modello
In un modello è possibile associare i controlli ai dati utilizzando i metodi Eval e Bind. Il metodo Eval può essere utilizzato se verranno visualizzati solo valori mediante il controllo. Il metodo Bind viene utilizzato quando gli utenti possono modificare un valore dati, ovvero negli scenari di solo aggiornamento dei dati. È possibile utilizzare il metodo Eval in qualsiasi modello per la visualizzazione dei dati. Il metodo Bind viene utilizzato in un modello che dispone di controlli in cui gli utenti possono modificare i valori, come i controlli TextBox e CheckBox o un modello che consenta l'eliminazione di un record. Per ulteriori informazioni, vedere Cenni preliminari sulle espressioni di associazione dati.
Esempio
Nell'esempio riportato di seguito viene illustrato l'insieme Fields di un controllo DetailsView. Tale insieme contiene un oggetto TemplateField che a sua volta contiene oggetti ItemTemplate, InsertItemTemplate e EditItemTemplate. Per visualizzare una data, l'oggetto ItemTemplate include un controllo Label che utilizza il metodo Eval. Per inserire o modificare una data, gli altri modelli utilizzano un controllo Calendar che utilizza il metodo Bind.
<Fields>
<asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" InsertVisible="False" ReadOnly="true"/>
<asp:BoundField DataField="FirstName" HeaderText="First Name"/>
<asp:BoundField DataField="LastName" HeaderText="Last Name"/>
<asp:TemplateField HeaderText="Birth Date">
<ItemTemplate>
<asp:Label ID="BirthDateLabel" Runat="Server"
Text='<%# Eval("BirthDate", "{0:d}") %>' />
</ItemTemplate>
<InsertItemTemplate>
<asp:Calendar ID="InsertBirthDateCalendar" Runat="Server"
SelectedDate='<%# Bind("BirthDate") %>' />
</InsertItemTemplate>
<EditItemTemplate>
<asp:Calendar ID="EditBirthDateCalendar" Runat="Server"
VisibleDate='<%# Eval("BirthDate") %>'
SelectedDate='<%# Bind("BirthDate") %>' />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
<Fields>
<asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" InsertVisible="False" ReadOnly="true"/>
<asp:BoundField DataField="FirstName" HeaderText="First Name"/>
<asp:BoundField DataField="LastName" HeaderText="Last Name"/>
<asp:TemplateField HeaderText="Birth Date">
<ItemTemplate>
<asp:Label ID="BirthDateLabel" Runat="Server"
Text='<%# Eval("BirthDate", "{0:d}") %>' />
</ItemTemplate>
<InsertItemTemplate>
<asp:Calendar ID="InsertBirthDateCalendar" Runat="Server"
SelectedDate='<%# Bind("BirthDate") %>' />
</InsertItemTemplate>
<EditItemTemplate>
<asp:Calendar ID="EditBirthDateCalendar" Runat="Server"
VisibleDate='<%# Eval("BirthDate") %>'
SelectedDate='<%# Bind("BirthDate") %>' />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
Vedere anche
Concetti
Cenni preliminari sui controlli server Web ASP.NET con associazione a dati
Cenni preliminari sui controlli origine dati