Procédure pas à pas : affichage de données dans un contrôle DataRepeater (Visual Studio)

Mise à jour : Juillet 2008

Cette procédure pas à pas propose un scénario de base complet pour l'affichage des données dépendantes dans un contrôle DataRepeater.

Condition préalable

Cette procédure pas à pas requiert l'exemple de base de données Northwind.

Si vous ne disposez pas de cette base de données sur votre ordinateur de développement, vous pouvez la télécharger sur le site Web du Centre de téléchargement Microsoft. Pour obtenir des instructions, consultez Téléchargement d'exemples de bases de données (LINQ to SQL).

Vue d'ensemble

La première partie de cette procédure pas à pas comporte quatre tâches principales :

  • Création d'une solution.

  • Ajout d'un contrôle DataRepeater.

  • Ajout d'une source de données.

  • Ajout de contrôles liés aux données.

Remarque :

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Création d'une solution DataRepeater

La première étape consiste à créer un projet et une solution.

Pour créer une solution DataRepeater

  1. Dans le menu Fichier de Visual Studio, cliquez sur Nouveau projet.

  2. Dans le volet Types de projets dans la boîte de dialogue Nouveau projet, développez Visual Basic, puis cliquez sur Windows.

  3. Dans le volet Modèles, cliquez sur Application Windows Forms.

  4. Dans la zone Nom, tapez DataRepeaterApp.

  5. Cliquez sur OK.

    Le Concepteur Windows Forms s'ouvre.

  6. Sélectionnez le formulaire dans le Concepteur Windows Forms. Dans la fenêtre Propriétés, affectez la valeur 800 à la propriété Size.

Ajout d'un contrôle DataRepeater

Cette étape ajoute un contrôle DataRepeater au formulaire.

Pour ajouter un contrôle DataRepeater

  1. Dans le menu Affichage, cliquez sur Boîte à outils.

    La Boîte à outils s'ouvre.

  2. Sélectionnez l'onglet Visual Basic PowerPacks.

  3. Faites glisser un contrôle DataRepeater sur Form1.

  4. Dans la fenêtre Propriétés, affectez à la propriété la valeur 0, 25 à la propriété Location.

  5. Attribuez la valeur 460, 600 à la propriété Size.

Ajout d'une source de données

Au cours de cette étape, vous ajoutez une source de données pour le contrôle DataRepeater.

Pour ajouter une source de données

  1. Dans le menu Données, cliquez sur Afficher les sources de données.

  2. Dans la fenêtre Sources de données, cliquez sur Ajouter une nouvelle source de données.

  3. Sélectionnez Base de données dans la page Choisir un type de source de données, puis cliquez sur Suivant.

  4. Sur la page Choisir votre connexion de données, effectuez l'une des opérations suivantes :

  5. Si un mot de passe est requis pour la base de données, sélectionnez l'option pour inclure les données sensibles, puis cliquez sur Suivant.

    Remarque :

    Si une boîte de dialogue s'affiche, cliquez sur Oui pour enregistrer le fichier dans votre projet.

  6. Cliquez sur Suivant dans la page Enregistrer la chaîne de connexion dans le fichier de configuration de l'application.

  7. Développez le nœud Tables dans la page Choisir vos objets de base de données.

  8. Activez les cases à cocher en regard des tables Customers et Orders, puis cliquez sur Terminer.

    NorthwindDataSet est ajouté à votre projet et les tables Customers et Orders apparaissent dans la fenêtre Sources de données.

Ajout de contrôles liés aux données

Cette étape ajoute des contrôles liés aux données à DataRepeater.

Pour ajouter des contrôles liés aux données

  1. Dans la fenêtre Sources de données, sélectionnez le nœud de niveau supérieur de la table Customers.

  2. Configurez le type de déplacement de la table sur Détails en cliquant sur Détails dans la liste déroulante du nœud table.

  3. Sélectionnez le nœud table Customers et faites-le glisser sur la région de modèle d'élément (région supérieure) du contrôle DataRepeater.

    Un contrôle BindingNavigator est ajouté au formulaire et les composants NorthwindDataSet, CustomersBindingSource, CustomersTableAdapter, TableAdapterManager et CustomersBindingNavigator sont ajoutés à la barre d'état des composants.

  4. Sélectionnez tous les champs et les étiquettes associées et positionnez-les près du bord gauche de la région de modèle d'élément.

  5. Sélectionnez les cinq derniers champs (Région, Code postal, Pays, Téléphone et Télécopie) et les étiquettes associées et déplacez-les en haut à droite des six premiers champs.

  6. Sélectionnez le modèle d'élément (région supérieure du contrôle).

  7. Dans la fenêtre Propriétés, affectez la valeur 427, 170 à la propriété Size.

Vous disposez désormais d'une application opérationnelle qui affiche une liste récurrente de clients. Vous pouvez appuyer sur F5 pour exécuter l'application, modifier les données et ajouter ou supprimer des enregistrements de client.

Au cours des étapes suivantes, vous allez à apprendre à personnaliser le contrôle DataRepeater.

Étapes suivantes (facultatives)

Cette partie de la procédure pas à pas comporte quatre tâches facultatives :

  • Modification de l'apparence du contrôle DataRepeater.

  • Protection des enregistrements contre tout ajout ou suppression.

  • Ajout de la fonction de recherche au contrôle DataRepeater.

  • Ajout d'une table principale et d'une table secondaire au contrôle DataRepeater.

Modification de l'apparence du contrôle DataRepeater

Au cours de cette étape facultative, vous modifiez la BackColor du contrôle DataRepeater au moment du design. Vous ajoutez également du code pour afficher des lignes dans des couleurs alternées et modifier conditionnellement la ForeColor d'une étiquette.

Pour modifier l'apparence du contrôle

  1. Dans le Concepteur Windows Forms, sélectionnez la région principale (inférieure) du contrôle DataRepeater.

  2. Dans la fenêtre Propriétés, attribuez la couleur blanche à la propriété BackColor.

  3. Double-cliquez sur DataRepeater pour ouvrir l'Éditeur de code.

  4. Dans l'Éditeur de code, sous la liste déroulante Événement, cliquez sur DrawItem.

  5. Dans le gestionnaire d'événements DrawItem, ajoutez le code suivant pour alterner la 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. Dans le gestionnaire d'événements DrawItem, ajoutez le code suivant pour modifier la ForeColor d'une étiquette en fonction d'une condition :

    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. Appuyez sur F5 pour exécuter l'application et afficher les personnalisations.

Protection des enregistrements contre tout ajout ou suppression

Cette étape facultative vous apprend à ajouter du code qui empêche les utilisateurs d'ajouter ou de supprimer des enregistrements dans le contrôle DataRepeater.

Pour empêcher des utilisateurs d'ajouter et de supprimer des enregistrements

  1. Dans le Concepteur Windows Forms, double-cliquez sur le formulaire pour ouvrir l'Éditeur de code.

  2. Ajoutez le code suivant à l'événement Form_Load :

    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. Dans la liste déroulante Nom de la classe, cliquez sur BindingNavigatorDeleteItem. Dans la liste déroulante Nom de la méthode, cliquez sur EnabledChanged.

  4. Ajoutez le code suivant au gestionnaire d'événements BindingNavigatorDeleteItem_EnabledChanged :

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

    Cette étape est nécessaire dans la mesure où BindingSource active le bouton DeleteItem chaque fois que l'enregistrement actuel est modifié.

  5. Appuyez sur F5 pour exécuter l'application. Remarquez que le bouton DeleteItem est désactivé et que vous ne pouvez pas supprimer des éléments en appuyant sur la touche SUPPR.

Ajout de la fonction de recherche au contrôle DataRepeater

Au cours de cette étape facultative, vous implémentez la fonction de recherche d'une valeur dans le contrôle DataRepeater. Si la chaîne de recherche est trouvée, le contrôle sélectionne l'élément qui contient la valeur et le fait défiler dans l'affichage.

Pour ajouter la fonction de recherche

  1. Faites glisser un contrôle TextBox depuis la Boîte à outils vers le formulaire qui contient le contrôle DataRepeater.

    Positionnez-le sous le contrôle DataRepeater.

  2. Dans la fenêtre Propriétés, remplacez la valeur de la propriété Nom par SearchTextBox.

  3. Faites glisser un contrôle Button depuis la Boîte à outils vers le formulaire qui contient le contrôle DataRepeater. Positionnez-le sous le contrôle DataRepeater.

  4. Dans la fenêtre Propriétés, remplacez la valeur de la propriété Nom par SearchButton. Affectez la valeur Search à la propriété Text.

  5. Double-cliquez sur le contrôle Button pour ouvrir l'Éditeur de code et ajoutez le code suivant au gestionnaire d'événements 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. Appuyez sur F5 pour exécuter l'application. Tapez un ID client dans SearchTextBox et cliquez sur le bouton Rechercher.

Ajout d'une table principale et d'une table secondaire au contrôle DataRepeater

Au cours de cette étape facultative, vous ajoutez un deuxième contrôle DataRepeater afin d'afficher les commandes connexes pour chaque client.

Pour ajouter une table principale et une table secondaire

  1. Faites glisser un deuxième contrôle DataRepeater depuis l'onglet Visual Basic PowerPacks de la Boîte à outils vers le formulaire.

  2. Dans la fenêtre Propriétés, affectez à la propriété la valeur 465, 25 à la propriété Location.

  3. Attribuez la valeur 315, 600 à la propriété Size.

  4. Dans la fenêtre Sources de données, développez le nœud table Customers et sélectionnez le nœud secondaire de la table Orders.

  5. Remplacez le type de déplacement de la table Orders par Détails en cliquant sur Détails dans la liste déroulante du nœud table.

  6. Faites glisser le nœud table Orders sur la région de modèle d'élément (région supérieure) du deuxième contrôle DataRepeater.

    Des composants OrdersBindingSource et OrdersTableAdapter sont ajoutés à la barre d'état des composants.

  7. Appuyez sur F5 pour exécuter l'application. Lorsque vous sélectionnez chacun des clients dans le premier contrôle DataRepeater, les commandes de ce client s'affichent dans le deuxième contrôle DataRepeater.

Voir aussi

Tâches

Comment : afficher des données liées dans un contrôle DataRepeater (Visual Studio)

Comment : afficher des données indépendantes dans un contrôle DataRepeater (Visual Studio)

Comment : modifier la disposition d'un contrôle DataRepeater (Visual Studio)

Comment : afficher des en-têtes d'élément dans un contrôle DataRepeater (Visual Studio)

Comment : rechercher des données dans un contrôle DataRepeater (Visual Studio)

Comment : créer un formulaire maître/détail en utilisant deux contrôles DataRepeater (Visual Studio)

Comment : modifier l'apparence d'un contrôle DataRepeater (Visual Studio)

Comment : désactiver l'ajout et la suppression d'éléments dans un contrôle DataRepeater (Visual Studio)

Dépannage des problèmes liés au contrôle DataRepeater (Visual Studio)

Concepts

Introduction au contrôle DataRepeater (Visual Studio)

Historique des modifications

Date

Historique

Raison

Juillet 2008

Ajout d'une rubrique.

Modifications de fonctionnalités dans le SP1.