Condividi tramite


Procedura dettagliata: implementazione della personalizzazione di Web part con un controllo utente

Aggiornamento: novembre 2007

Questa procedura dettagliata illustra le modalità di creazione di un controllo utente ASP.NET che si basa sulla personalizzazione di Web part per fornire valori predefiniti specifici di un utente su una pagina Web.

I controlli Web part ASP.NET consentono di creare pagine Web con layout modulari in cui gli utenti possono modificare l'aspetto e il contenuto delle pagine in base alle proprie esigenze. Una delle principali funzionalità Web part, la personalizzazione, consente di salvare impostazioni specifiche di un utente per ciascuna pagina e di riutilizzarle nelle sessioni successive del browser.

Mediante la personalizzazione di Web part è possibile creare pagine Web che includono una funzione utile per molte applicazioni Web, ossia la possibilità di fornire valori predefiniti specifici di un utente in un form. In questa procedura dettagliata viene illustrato come fornire valori predefiniti specifici di un utente mediante l'implementazione di un controllo utente che può essere considerato come un controllo Web part personalizzabile. Questo approccio di sviluppo può risultare utile se ad esempio si crea un'applicazione che verrà utilizzata da agenti del servizio clienti per compilare moduli in linea. Le funzionalità Web part e di personalizzazione consentono alla pagina di riconoscere l'agente. Il controllo utente consente a ciascun agente di salvare i valori predefiniti per i campi del form, che verranno automaticamente compilati ad ogni successiva visita della pagina.

Nota:

Il controllo utente creato in questa procedura dettagliata non eredita dalla classe WebPart. Nel corso di questa procedura dettagliata verrà illustrato come un controllo utente può funzionare come un controllo WebPart. Tale controllo utente verrà aggiunto a un'area WebPartZoneBase per consentire ad ASP.NET di incapsularlo in un controllo GenericWebPart. Il controllo utente funzionerà quindi come qualsiasi altro controllo WebPart, consentendo di sperimentare la personalizzazione.

In particolare, vengono illustrate le seguenti operazioni:

  • Creazione di un controllo utente con proprietà personalizzabili, i cui valori possono essere salvati in un sistema di memorizzazione a lungo termine.

  • Visualizzazione dei valori predefiniti specifici di un utente su un form in una pagina Web.

  • Utilizzo del controllo utente in un'area come se fosse un controllo WebPart.

    Nota:

    Anche se questo tipo di applicazione potrebbe essere sviluppato utilizzando i profili ASP.NET, in questo caso non è necessario memorizzare informazioni sull'utente da riutilizzare all'interno di un'intera applicazione, ad esempio un'applicazione di carrello degli acquisti, bensì occorre salvare preferenze o impostazioni specifiche di un utente per ogni singolo controllo, pagina per pagina. Per ulteriori informazioni sui profili, vedere Cenni preliminari sulle proprietà dei profili ASP.NET.

Prerequisiti

Per completare questa procedura dettagliata è necessario:

  • Internet Information Services (IIS) installato e configurato sul computer che ospiterà il sito. Per informazioni dettagliate sull'installazione e sulla configurazione di IIS, vedere la Guida di IIS inclusa nel prodotto o la documentazione in linea di IIS disponibile sul sito Microsoft TechNet, Internet Information Services 6.0 Technical Resources (informazioni in lingua inglese).

  • Un sito Web ASP.NET in grado di identificare i singoli utenti. Se un sito di questo tipo è già configurato, è possibile utilizzarlo come punto di partenza per questa procedura dettagliata. In caso contrario, per informazioni dettagliate sulla creazione di una directory o un sito virtuale, vedere Procedura: creare e configurare directory virtuali in IIS 5.0 e 6.0.

  • Un database e un provider di personalizzazioni configurati. La personalizzazione di Web part è attivata per impostazione predefinita e utilizza il provider di personalizzazioni SQL (SqlPersonalizationProvider) con Microsoft SQL Server Standard Edition (SSE) per la memorizzazione dei dati di personalizzazione. In questa procedura dettagliata vengono utilizzati SSE e il provider SQL predefinito. Se SSE è già installato non è necessaria alcuna configurazione. SSE è disponibile con Microsoft Visual Studio 2005 come parte facoltativa dell'installazione oppure può essere scaricato gratuitamente. Per ulteriori dettagli, vedere la pagina Web Microsoft SQ. Per utilizzare una delle versioni complete di SQL Server, è necessario installare e configurare un database dei servizi dell'applicazione ASP.NET e configurare il provider di personalizzazioni SQL per la connessione a tale database. Per informazioni dettagliate, vedere Creazione e configurazione del database dei servizi dell'applicazione per SQL Server. È inoltre possibile creare e configurare un provider personalizzato da utilizzare con altri database o soluzioni di memorizzazione non basati su SQL. Per informazioni dettagliate e il codice di esempio, vedere Implementazione di un provider di appartenenze.

Creazione di un controllo utente personalizzabile

In questa parte della procedura dettagliata viene creato un controllo utente che fornisce l'interfaccia utente per un form di informazioni di un agente. Il controllo espone inoltre le proprietà personalizzabili relative alle informazioni su nome e numero di telefono.

Nota:

Non è necessario attivare la personalizzazione di Web part, poiché è già attivata per impostazione predefinita. Per ulteriori informazioni sulla personalizzazione, vedere Cenni preliminari sulla personalizzazione di Web part.

Per creare proprietà personalizzabili per il controllo utente

  1. Nell'editor di testo creare un nuovo file e aggiungere la seguente dichiarazione di controllo all'inizio del file insieme ai tag di apertura e chiusura <script>:

    <%@ control language="VB" classname="AccountUserControl" %>
    <script >
    </script>
    
    <%@ control language="C#" classname="AccountUserControl" %>
    <script >
    </script>
    
  2. All'interno dei tag <script> aggiungere codice per creare due proprietà personalizzabili, una denominata UserName e l'altra denominata Phone, come illustrato nell'esempio riportato di seguito.

    Nota:

    Ciascuna proprietà dispone di un attributo Personalizable, che consente alla personalizzazione di Web part di memorizzare i valori delle proprietà in un database.

      <Personalizable()> _
      Property UserName() As String
    
        Get
          If Textbox1.Text Is Nothing Or Textbox1.Text.Length < 0 Then
              Return String.Empty
          Else
              Return Textbox1.Text
          End If
        End Get
    
        Set(ByVal value As String)
          Textbox1.Text = value
        End Set
    
      End Property
    
      <Personalizable()> _
      Property Phone() As String
    
        Get
          If Textbox2.Text Is Nothing Or Textbox2.Text.Length < 0 Then
              Return String.Empty
          Else
              Return Textbox2.Text
          End If
        End Get
    
        Set(ByVal value As String)
          Textbox2.Text = value
        End Set
    
      End Property
    
      [Personalizable]
      public string UserName
      {
        get
        {
          if(Textbox1.Text == null | Textbox1.Text.Length < 0)
            return String.Empty;
          else
            return Textbox1.Text;
        }
    
        set
        {
          Textbox1.Text = value;
        }
      }
    
      [Personalizable]
      public string Phone
      {
        get
        {
          if(Textbox2.Text == null | Textbox2.Text.Length < 0)
            return String.Empty;
          else
            return Textbox2.Text;
        }
    
        set
        {
          Textbox2.Text = value;
        }
      }
    
    Nota sulla sicurezza:

    Il controllo include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per ulteriori informazioni, vedere Cenni preliminari sugli attacchi tramite script.

  3. Denominare il file AccountUserControlCS.ascx o AccountUserControlVB.ascx (a seconda del linguaggio utilizzato) e salvarlo nella directory principale del sito Web.

Dopo avere aggiunto le proprietà personalizzabili per salvare i valori predefiniti, è possibile aggiungere i controlli di interfaccia utente al controllo utente per visualizzare il nome e il numero di telefono di un utente.

Per aggiungere controlli di interfaccia utente al controllo utente

  1. Sotto i tag <script> aggiungere un controllo Label e un controllo TextBox racchiuso tra i tag <div> per contenere il nome dell'utente, come illustrato nell'esempio di codice riportato di seguito:

    <div>
    <asp:label id="Label1" >Name</asp:label>
    <asp:textbox id="Textbox1"  />
    </div>
    
  2. Sotto il controllo appena aggiunto, aggiungere un controllo Label e un controllo TextBox racchiuso tra i tag <div> per contenere il numero di telefono dell'utente, come illustrato di seguito:

    <div>
    <asp:label id="Label2" >Phone</asp:label>
    <asp:textbox id="Textbox2"  />
    </div>
    
  3. Sotto il controllo appena aggiunto, aggiungere un elemento <asp:button> racchiuso tra i tag <div> per salvare le informazioni sull'utente mediante l'esecuzione di un postback:

    <div>
    <asp:button id="Button1"  
      text="Save Form Values" />
    </div>
    
  4. Salvare il file.

Riferimento al controllo utente come a un controllo Web part

Una volta creato un controllo utente con proprietà personalizzabili, è possibile creare una pagina Web ASP.NET che contenga il controllo utente come controllo Web part. È necessario che il controllo venga aggiunto come controllo Web part affinché la personalizzazione funzioni.

Per fare riferimento al controllo utente come a un controllo Web part

  1. Nell'editor di testo creare un nuovo file e aggiungere la seguente dichiarazione di pagina all'inizio del file:

    <%@ page language="VB" %>
    
    <%@ page language="C#" %>
    
  2. Sotto la dichiarazione di pagina, aggiungere una dichiarazione in cui si fa riferimento al controllo utente creato in precedenza, come illustrato nell'esempio riportato di seguito:

    <%@ register tagprefix="uc1" 
        tagname="AccountUserControl" 
        src="AccountUserControlvb.ascx"%>
    
    <%@ register tagprefix="uc1" 
        tagname="AccountUserControl" 
        src="AccountUserControlcs.ascx"%>
    
  3. Sotto il riferimento al controllo, aggiungere la seguente struttura di pagina di base per aggiungere il controllo utente come controllo Web part.

    Nota:

    Affinché il controllo utente funzioni come controllo Web part, la pagina deve contenere un elemento <asp:webpartmanager> e il controllo utente deve essere contenuto all'interno di un elemento <asp:webpartzone> e di un elemento <zonetemplate> in successione.

    <html>
    <head >
        <title>Personalizable User Control</title>
    </head>
    <body>
        <form id="form1" >
          <asp:webpartmanager id="WebPartManager1"   />
          <asp:webpartzone id="zone1"  headertext="Main">
            <zonetemplate>
              <uc1:AccountUserControl 
    
                id="accountwebpart"
                title="Agent Information" /> 
            </zonetemplate>
          </asp:webpartzone>
        </form>
    </body>
    </html>
    
  4. Denominare il file Hostaccountcontrol.aspx e salvarlo nella stessa directory del controllo utente.

A questo punto è stato creato un controllo utente personalizzabile a cui viene fatto riferimento come a un controllo Web part in una pagina Web Form. Il passaggio finale consiste nell'eseguire il test del controllo utente.

Per eseguire il test del controllo utente personalizzabile

  1. Caricare la pagina Hostaccountcontrol.aspx in un browser.

  2. Immettere valori nei campi Name e Phone, quindi fare clic sul pulsante Save Form Values.

  3. Chiudere il browser.

  4. Caricare di nuovo la pagina in un browser.

    I valori immessi in precedenza verranno automaticamente visualizzati nel form. Si tratta dei valori salvati nelle proprietà personalizzabili e ripristinati dal database quando la pagina è stata ricaricata nel browser.

  5. Immettere nuovi valori nel form senza fare clic sul pulsante per salvarli.

  6. Chiudere il browser.

  7. Caricare di nuovo la pagina in un browser.

    I valori originali immessi e salvati nelle proprietà personalizzate sono gli stessi visualizzati nel form, perché i nuovi valori non sono stati salvati.

Passaggi successivi

In questa procedura dettagliata sono state illustrate le operazioni principali da eseguire per creare un controllo utente con proprietà personalizzabili. È stato creato un controllo che consente di salvare impostazioni specifiche di un utente per un determinato controllo di una determinata pagina e di visualizzare le impostazioni salvate alla successiva visita della pagina da parte dell'utente in una nuova sessione del browser. Suggerimenti per un'ulteriore analisi:

Vedere anche

Concetti

Cenni preliminari su Web part ASP.NET

Cenni preliminari sulla personalizzazione di Web part