Condividi tramite


Procedura dettagliata: visualizzazione di dati in un controllo DataRepeater (Visual Studio)

Aggiornamento: Luglio 2008

In questa procedura dettagliata viene fornito un intero scenario di base per la visualizzazione di dati associati in un controllo DataRepeater.

Prerequisito

Per questa procedura dettagliata è richiesto il database di esempio Northwind.

Se tale database non è installato sul computer di sviluppo, è possibile scaricarlo dall'Area download Microsoft. Per istruzioni, vedere Download dei database di esempio (LINQ to SQL).

Cenni preliminari

Nella prima parte della procedura dettagliata sono previste quattro attività principali:

  • Creazione di una soluzione.

  • Aggiunta di un controllo DataRepeater.

  • Aggiunta di un'origine dati.

  • Aggiunta di controlli con associazione a dati.

Nota:

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Creazione di una soluzione DataRepeater

Nel primo passaggio vengono creati un progetto e una soluzione.

Per creare una soluzione DataRepeater

  1. Dal menu File di Visual Studio, fare clic su Nuovo progetto.

  2. Nel riquadro Tipi progetto della finestra di dialogo Nuovo progetto espandere Visual Basic, quindi fare clic su Windows

  3. Nel riquadro Modelli fare clic su Applicazione Windows Form.

  4. Nella casella Nome, digitare DataRepeaterApp.

  5. Scegliere OK.

    Verrà aperto Progettazione Windows Form.

  6. Selezionare il form in Progettazione Windows Form. Nella finestra Proprietà, impostare la proprietà Size su 800, 700.

Aggiunta di un controllo DataRepeater

In questo passaggio viene aggiunto un controllo DataRepeater al form.

Per aggiungere un controllo DataRepeater

  1. Scegliere Casella degli strumenti dal menu Visualizza.

    Verrà aperta la Casella degli strumenti.

  2. Selezionare la scheda Visual Basic Power Pack 1.1.

  3. Trascinare un controllo DataRepeater su Form1.

  4. Nella finestra Proprietà, impostare la proprietà Location su 0, 25.

  5. Impostare la proprietà Size su 460, 600.

Aggiunta di un'origine dati

In questo passaggio viene aggiunta un'origine dati per il controllo DataRepeater.

Per aggiungere un'origine dati

  1. Scegliere Mostra origini dati dal menu Dati.

  2. Nella finestra Origini dati fare clic su Aggiungi nuova origine dati.

  3. Selezionare Database nella pagina Scegliere un tipo di origine dati e scegliere Avanti.

  4. Nella pagina Seleziona connessione dati, effettuare una delle seguenti operazioni:

    • Selezionare la connessione dati al database di esempio Northwind nell'elenco a discesa, se presente.

      -oppure-

    • Per configurare una nuova connessione dati, fare clic su Nuova connessione. Per ulteriori informazioni, vedere la classe Procedura: creare connessioni a database di SQL Server.

  5. Se il database richiede una password, selezionare l'opzione che consente di includere dati riservati, quindi scegliere Avanti.

    Nota:

    Se viene visualizzata una finestra di dialogo, scegliere Sì per salvare il file nel progetto.

  6. Scegliere Avanti nella pagina Salva la stringa di connessione nel file di configurazione applicazione.

  7. Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.

  8. Selezionare le caselle di controllo relative alle tabelle Customers e Orders, quindi scegliere Fine.

    L'oggetto NorthwindDataSet viene aggiunto al progetto e le tabelle Customers e Orders vengono visualizzate nella finestra Origini dati.

Aggiunta di controlli con associazione a dati

In questo passaggio, all'oggetto DataRepeater vengono aggiunti controlli con associazione a dati.

Per aggiungere controlli con associazione a dati

  1. Nella finestra Origini dati, selezionare il nodo di primo livello della tabella Customers.

  2. Impostare su Dettagli il tipo di visualizzazione degli elementi della tabella facendo clic su Dettagli nell'elenco a discesa del nodo della tabella.

  3. Selezionare il nodo della tabella Customers e trascinarlo sull'area del modello di elemento (l'area superiore) del controllo DataRepeater.

    Viene aggiunto un controllo BindingNavigator al form e vengono aggiunti i componenti NorthwindDataSet, CustomersBindingSource, CustomersTableAdapter, TableAdapterManager e CustomersBindingNavigator alla Barra dei componenti.

  4. Selezionare tutti i campi e le etichette a essi associate e posizionarli vicino al bordo sinistro dell'area del modello di elemento.

  5. Selezionare gli ultimi cinque campi (Regione, CAP, Paese, Telefono e Fax) e le etichette a essi associate e spostarli verso l'alto e a destra dei primi sei campi.

  6. Selezionare il modello di elemento (l'area superiore del controllo).

  7. Nella finestra Proprietà, impostare la proprietà Size su 427, 170.

A questo punto si dispone di un'applicazione funzionante in cui verrà visualizzato un elenco ripetuto di clienti. È possibile premere F5 per eseguire l'applicazione, modificare i dati e aggiungere o eliminare record relativi ai clienti.

Nei passaggi facoltativi successivi verrà illustrato come personalizzare il controllo DataRepeater.

Passaggi successivi (facoltativi)

Nella prima parte della procedura dettagliata sono previste quattro attività facoltative:

  • Modifica dell'aspetto del controllo DataRepeater.

  • Esclusione della possibilità per gli utenti di aggiungere o eliminare record.

  • Aggiunta di funzionalità di ricerca al controllo DataRepeater.

  • Aggiunta di una tabella master e dettaglio al controllo DataRepeater.

Modifica dell'aspetto del controllo DataRepeater

In questo passaggio facoltativo viene modificata in fase di progettazione la proprietà BackColor del controllo DataRepeater. Viene inoltre illustrato come aggiungere codice per visualizzare le righe in colori alternati e modificare in modo condizionale l'oggetto ForeColor di un'etichetta.

Per modificare l'aspetto del controllo

  1. In Progettazione Windows Form selezionare l'area principale (inferiore) del controllo DataRepeater.

  2. Nella finestra Proprietà, impostare la proprietà BackColor sul bianco.

  3. Fare doppio clic su DataRepeater per aprire l'editor di codice.

  4. Nell'elenco a discesa Evento dell'editor di codice, fare clic su DrawItem.

  5. Nel gestore eventi DrawItem, aggiungere il codice riportato di seguito per alternare BackColor.

    ' Alternate the back color.
    If (e.DataRepeaterItem.ItemIndex Mod 2) <> 0 Then
        ' Apply the secondary back color.
        e.DataRepeaterItem.BackColor = Color.AliceBlue
    Else
        ' Apply the default back color.
        e.DataRepeaterItem.BackColor = DataRepeater1.BackColor
    End If
    
    // Alternate the back color.
    if ((e.DataRepeaterItem.ItemIndex % 2) != 0)
    // Apply the secondary back color.
    {
        e.DataRepeaterItem.BackColor = Color.AliceBlue;
    }
    else
    {
        // Apply the default back color.
        e.DataRepeaterItem.BackColor = dataRepeater1.BackColor;
    }
    
  6. Nel gestore eventi DrawItem, aggiungere il codice seguente per modificare l'oggetto ForeColor di un'etichetta in base a una condizione:

    If e.DataRepeaterItem.Controls(RegionTextBox.Name).Text _
     = "" Then
        e.DataRepeaterItem.Controls("RegionLabel"). _
         ForeColor = Color.Red
    Else
        e.DataRepeaterItem.Controls("RegionLabel"). _
         ForeColor = Color.Black
    End If
    
    if (e.DataRepeaterItem.Controls[regionTextBox.Name].Text == "")
    {
        e.DataRepeaterItem.Controls["regionLabel"].ForeColor = Color.Red;
    }
    else
    {
        e.DataRepeaterItem.Controls["regionLabel"].ForeColor = Color.Black;
    }
    
  7. Premere F5 per eseguire l'applicazione e visualizzare le personalizzazioni.

Esclusione della possibilità per gli utenti di aggiungere o eliminare record

In questo passaggio facoltativo viene illustrato come aggiungere codice per impedire agli utenti di aggiungere o eliminare record nel controllo DataRepeater.

Esclusione della possibilità per gli utenti di aggiungere o eliminare record

  1. In Progettazione Windows Form, fare doppio clic sul form per aprire l'editor di codice.

  2. Aggiungere all'evento Form_Load il codice seguente:

    DataRepeater1.AllowUserToAddItems = False
    DataRepeater1.AllowUserToDeleteItems = False
    BindingNavigatorAddNewItem.Enabled = False
    CustomersBindingSource.AllowNew = False
    BindingNavigatorDeleteItem.Enabled = False
    
    dataRepeater1.AllowUserToAddItems = false;
    dataRepeater1.AllowUserToDeleteItems = false;
    bindingNavigatorAddNewItem.Enabled = false;
    customersBindingSource.AllowNew = false;
    bindingNavigatorDeleteItem.Enabled = false;
    
  3. Nell'elenco a discesa Nome classe fare clic su BindingNavigatorDeleteItem. Nell'elenco a discesa Nome metodo fare clic su EnabledChanged.

  4. Aggiungere il codice seguente al gestore eventi BindingNavigatorDeleteItem_EnabledChanged:

    If BindingNavigatorDeleteItem.Enabled = True Then
        BindingNavigatorDeleteItem.Enabled = False
    End If
    
    if (bindingNavigatorDeleteItem.Enabled == true)
    {
        bindingNavigatorDeleteItem.Enabled = false;
    }
    
    Nota:

    Questo passaggio è necessario in quanto BindingSource attiva il pulsante DeleteItem ogni volta che vengono apportate modifiche al record corrente.

  5. ‎Premere F5 per eseguire l'applicazione. Si noti che il pulsante DeleteItem è disattivato e che non è possibile eliminare elementi premendo il tasto CANC.

Aggiunta di funzionalità di ricerca al controllo DataRepeater

In questo passaggio facoltativo viene implementata la funzionalità di ricerca di un valore nel controllo DataRepeater. Se la stringa di ricerca viene trovata, l'elemento contenente il valore viene selezionato dal controllo e scorso nella visualizzazione.

Per aggiungere la funzionalità di ricerca

  1. Trascinare un controllo TextBox dalla Casella degli strumenti al form contenente il controllo DataRepeater.

    Posizionarlo sotto il controllo DataRepeater.

  2. Nella finestra Proprietà, impostare la proprietà Name su SearchTextBox.

  3. Trascinare un controllo Button dalla Casella degli strumenti al form contenente il controllo DataRepeater. Posizionarlo sotto il controllo DataRepeater.

  4. Nella finestra Proprietà, impostare la proprietà Name su SearchButton. Impostare la proprietà Testo su Search.

  5. Fare doppio clic sul controllo Button per aprire l'editor di codice, quindi aggiungere il codice seguente al gestore eventi SearchButton_Click:

    Dim foundIndex As Integer
    Dim searchString As String
    searchString = SearchTextBox.Text
    ' Search for the string in the CustomerID field.
    foundIndex = CustomersBindingSource.Find("CustomerID", _
     searchString)
    If foundIndex > -1 Then
        DataRepeater1.CurrentItemIndex = foundIndex
    Else
        MsgBox("Item " & searchString & " not found.")
    End If
    
    int foundIndex;
    string searchString;
    searchString = searchTextBox.Text;
    // Search for the string in the CustomerID field.
    foundIndex = customersBindingSource.Find("CustomerID", searchString);
    if (foundIndex > -1)
    {
        dataRepeater1.CurrentItemIndex = foundIndex;
    }
    else
    {
        MessageBox.Show("Item " + searchString + " not found.");
    }
    
  6. ‎Premere F5 per eseguire l'applicazione. Immettere l'ID di un cliente in SearchTextBox e fare clic sul pulsante Cerca.

Aggiunta di una tabella master e dettaglio al controllo DataRepeater

In questo passaggio facoltativo viene aggiunto un secondo controllo DataRepeater per visualizzare gli ordini relativi a ciascun cliente.

Per aggiungere una tabella master e dettaglio

  1. Trascinare un secondo controllo DataRepeater dalla scheda Visual Basic PowerPack 1.1 alla Casella degli strumenti del form.

  2. Nella finestra Proprietà, impostare la proprietà Location su 465, 25.

  3. Impostare la proprietà Size su 315, 600.

  4. Nella finestra Origini dati, espandere il nodo della tabella Customers e selezionare il nodo dettaglio per la tabella Orders.

  5. Impostare su Dettagli il tipo di visualizzazione della tabella Orders facendo clic su Dettagli nell'elenco a discesa del nodo della tabella.

  6. Trascinare il nodo della tabella Orders sull'area del modello di elemento (l'area superiore) del secondo controllo DataRepeater.

    Alla Barra dei componenti viene aggiunto un componente OrdersBindingSource e un componente OrdersTableAdapter.

  7. ‎Premere F5 per eseguire l'applicazione. Selezionando un cliente nel primo controllo DataRepeater, gli ordini relativi a tale cliente vengono visualizzati nel secondo controllo DataRepeater.

Vedere anche

Attività

Procedura: visualizzare i dati associati in un controllo DataRepeater (Visual Studio)

Procedura: visualizzare i dati non associati in un controllo DataRepeater (Visual Studio)

Procedura: modificare il layout di un controllo DataRepeater (Visual Studio)

Procedura: visualizzare le intestazioni degli elementi in un controllo DataRepeater (Visual Studio)

Procedura: ricercare dati in un controllo DataRepeater (Visual Studio)

Procedura: creare un form Master-Details mediante due controlli DataRepeater (Visual Studio)

Procedura: modificare l'aspetto di un controllo DataRepeater (Visual Studio)

Procedura: disattivare l'aggiunta e l'eliminazione di elementi DataRepeater (Visual Studio)

Risoluzione dei problemi relativi al controllo DataRepeater (Visual Studio)

Concetti

Introduzione al controllo DataRepeater (Visual Studio)

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2008

Argomento aggiunto.

Modifica di funzionalità in SP1.