Condividi tramite


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

Procedura dettagliata: visualizzazione di dati formattati nelle pagine Web con il 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

FormView

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

Altre risorse

Controlli della Casella degli strumenti di dati