Cenni preliminari sul controllo server Web FormView
Aggiornamento: novembre 2007
Il controllo FormView consente di visualizzare un singolo record alla volta da un'origine dati. Quando si utilizza il controllo FormView, occorre creare i modelli per visualizzare e modificare i valori con associazione a dati. Nel modello sono inclusi i controlli, le espressioni di associazione e i dati di formattazione che definiscono l'aspetto e le funzionalità del form. Il controllo FormView viene spesso utilizzato in combinazione con un controllo GridView per scenari Master-Details.
Vengono illustrati i seguenti argomenti:
Background
Esempi di codice
Riferimento alle classi
Background
Analogamente al controllo DetailsView, il controllo FormView consente di utilizzare un singolo record di un'origine dati. Tuttavia, a differenza di DetailsView, che utilizza un layout in formato tabella con una riga distinta per ogni campo del record, FormView non specifica un layout predefinito per la visualizzazione del record. È invece necessario creare un modello contenente controlli per la visualizzazione dei singoli campi del record. Nel modello sono inclusi i dati di formattazione, le espressioni di associazione e i controlli utilizzati per la creazione del form.
Il controllo FormView è in genere utilizzato per l'aggiornamento e l'inserimento di nuovi record. Viene utilizzato spesso negli scenari Master-Details in cui il record selezionato del controllo master determina il record da visualizzare nel controllo FormView. Per ulteriori informazioni e un esempio, vedere Modifica dei dati mediante un controllo server Web FormView.
Il controllo FormView sfrutta le funzionalità del controllo origine dati per eseguire attività quali l'aggiornamento, l'inserimento e l'eliminazione di record. Il controllo FormView visualizza solamente un singolo record di dati alla volta, anche quando nell'origine dati associata sono esposti più record.
Il controllo FormView può spostare automaticamente i dati nell'origine dati associata un record alla volta. A tal scopo, è necessario che i dati siano rappresentati da un oggetto che implementa l'interfaccia ICollection o che l'origine dati sottostante supporti lo spostamento. Il controllo fornisce anche l'interfaccia utente per lo spostamento tra i record. Per attivare lo spostamento, impostare la proprietà AllowPaging su true e specificare un valore per PagerTemplate.
Il controllo FormView espone diversi eventi che è possibile gestire per l'esecuzione del codice. Gli eventi vengono generati prima e dopo le operazioni di inserimento, aggiornamento ed eliminazione del controllo origine dati associato. È inoltre possibile creare dei gestori per gli eventi ItemCreated e ItemCommand. Per ulteriori informazioni, vedere Eventi generati dal controllo server Web FormView.
Nota: |
---|
Il modello di eventi del controllo FormView è analogo a quello del controllo GridView, con la differenza che FormView non supporta eventi di selezione perché il record corrente corrisponde sempre all'elemento selezionato. |
Associazione dati con il controllo FormView
Il controllo FormView fornisce le seguenti opzioni per l'associazione ai dati:
Associazione dati mediante la proprietà DataSourceID, che consente di associare il controllo FormView a un controllo origine dati. Si consiglia di utilizzare questa opzione perché consente al controllo FormView di usufruire delle funzionalità del controllo origine dati, nonché di fornire funzionalità incorporate per l'aggiornamento e lo spostamento.
Associazione dati mediante la proprietà DataSource, che consente di eseguire l'associazione a diversi oggetti, inclusi i lettori dati e i dataset ADO.NET. Questa opzione richiede la scrittura di codice per eventuali funzionalità aggiuntive, ad esempio l'aggiornamento e lo spostamento.
Quando si esegue l'associazione a un'origine dati utilizzando la proprietà DataSourceID, il controllo FormView supporta l'associazione dati bidirezionale. Oltre al controllo per la visualizzazione dei dati, è possibile attivare il controllo per il supporto automatico delle operazioni di inserimento, aggiornamento ed eliminazione sui dati associati.
Per ulteriori informazioni, vedere Controlli server Web dell'origine dati.
Creazione dell'interfaccia utente del controllo FormView
L'interfaccia utente relativa al controllo FormView viene generata mediante la creazione di modelli. È necessario specificare modelli differenti a seconda delle azioni da eseguire. Per le modalità di visualizzazione, inserimento e modifica è necessario creare un modello ItemTemplate. È possibile controllare lo spostamento mediante un modello PagerTemplate e personalizzare l'intestazione e il piè di pagina del controllo FormView utilizzando rispettivamente HeaderTemplate e FooterTemplate. È inoltre possibile specificare un modello da visualizzare quando l'origine dati non restituisce dati utilizzando EmptyDataTemplate. Per ulteriori informazioni, vedere Creazione di modelli per il controllo server Web FormView.
I modelli di elemento creati per il controllo FormView specificano il contenuto del controllo. Come per DetailsView, è possibile personalizzare anche il formato di visualizzazione del controllo FormView utilizzando proprietà di stile quali EditRowStyle, EmptyDataRowStyle, FooterStyle, HeaderStyle, InsertRowStyle, PagerStyle e RowStyle.
Nell'esempio riportato di seguito viene illustrata una pagina ASP.NET che utilizza un controllo FormView per la visualizzazione dei dati.
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>FormView Example</title>
</head>
<body>
<form id="form1" >
<h3>FormView Example</h3>
<table cellspacing="10">
<tr>
<td valign="top">
<asp:FormView ID="ProductsFormView"
DataSourceID="ProductsSqlDataSource"
AllowPaging="true"
>
<HeaderStyle forecolor="white" backcolor="Blue" />
<ItemTemplate>
<table>
<tr>
<td align="right"><b>Product ID:</b></td>
<td><asp:Label id="ProductIDLabel" Text='<%# Eval("ProductID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Product Name:</b></td>
<td><asp:Label id="ProductNameLabel" Text='<%# Eval("ProductName") %>' /></td>
</tr>
<tr>
<td align="right"><b>Category ID:</b></td>
<td><asp:Label id="CategoryIDLabel" Text='<%# Eval("CategoryID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Quantity Per Unit:</b></td>
<td><asp:Label id="QuantityPerUnitLabel" Text='<%# Eval("QuantityPerUnit") %>' /></td>
</tr>
<tr>
<td align="right"><b>Unit Price:</b></td>
<td><asp:Label id="UnitPriceLabel" Text='<%# Eval("UnitPrice") %>' /></td>
</tr>
</table>
</ItemTemplate>
<PagerTemplate>
<table>
<tr>
<td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
<td><asp:LinkButton ID="PrevButton" CommandName="Page" CommandArgument="Prev" Text="<" RunAt="server"/></td>
<td><asp:LinkButton ID="NextButton" CommandName="Page" CommandArgument="Next" Text=">" RunAt="server"/></td>
<td><asp:LinkButton ID="LastButton" CommandName="Page" CommandArgument="Last" Text=">>" RunAt="server"/></td>
</tr>
</table>
</PagerTemplate>
</asp:FormView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="ProductsSqlDataSource"
SelectCommand="SELECT * FROM [Products]"
connectionstring="<%$ ConnectionStrings:NorthwindConnection %>"
RunAt="server"/>
</form>
</body>
</html>
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>FormView Example</title>
</head>
<body>
<form id="form1" >
<h3>FormView Example</h3>
<table cellspacing="10">
<tr>
<td valign="top">
<asp:FormView ID="ProductsFormView"
DataSourceID="ProductsSqlDataSource"
AllowPaging="true"
>
<HeaderStyle forecolor="white" backcolor="Blue" />
<ItemTemplate>
<table>
<tr>
<td align="right"><b>Product ID:</b></td>
<td><asp:Label id="ProductIDLabel" Text='<%# Eval("ProductID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Product Name:</b></td>
<td><asp:Label id="ProductNameLabel" Text='<%# Eval("ProductName") %>' /></td>
</tr>
<tr>
<td align="right"><b>Category ID:</b></td>
<td><asp:Label id="CategoryIDLabel" Text='<%# Eval("CategoryID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Quantity Per Unit:</b></td>
<td><asp:Label id="QuantityPerUnitLabel" Text='<%# Eval("QuantityPerUnit") %>' /></td>
</tr>
<tr>
<td align="right"><b>Unit Price:</b></td>
<td><asp:Label id="UnitPriceLabel" Text='<%# Eval("UnitPrice") %>' /></td>
</tr>
</table>
</ItemTemplate>
<PagerTemplate>
<table>
<tr>
<td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
<td><asp:LinkButton ID="PrevButton" CommandName="Page" CommandArgument="Prev" Text="<" RunAt="server"/></td>
<td><asp:LinkButton ID="NextButton" CommandName="Page" CommandArgument="Next" Text=">" RunAt="server"/></td>
<td><asp:LinkButton ID="LastButton" CommandName="Page" CommandArgument="Last" Text=">>" RunAt="server"/></td>
</tr>
</table>
</PagerTemplate>
</asp:FormView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="ProductsSqlDataSource"
SelectCommand="SELECT ProductID, ProductName, CategoryID, QuantityPerUnit, UnitPrice FROM [Products]"
connectionstring="<%$ ConnectionStrings:NorthwindConnection %>"
RunAt="server"/>
</form>
</body>
</html>
Torna all'inizio
Esempi di codice
Creazione di modelli per il controllo server Web FormView
Spostamento tra le pagine in un controllo server Web FormView
Modifica dei dati mediante un controllo server Web FormView
Eventi generati dal controllo server Web FormView
Torna all'inizio
Riferimento alle classi
Nella tabella riporta di seguito sono elencate le classi principali correlate al controllo FormView.
Membro |
Descrizione |
---|---|
Classe principale del controllo. |
Torna all'inizio
Vedere anche
Concetti
Cenni preliminari sull'accesso ai dati ASP.NET
Modelli dei controlli server Web ASP.NET