Freigeben über


Exemplarische Vorgehensweise: Anzeigen von Daten in einem DataRepeater-Steuerelement (Visual Studio)

In dieser exemplarischen Vorgehensweise wird ein Szenario für die Anzeige gebundener Daten in einem DataRepeater-Steuerelement vom Anfang bis zum Ende beschrieben.

Vorbereitungsmaßnahme

Für dieses Beispiel wird die Beispieldatenbank Northwind benötigt.

Wenn diese Datenbank auf dem Entwicklungscomputer nicht installiert ist, können Sie sie von der Website Microsoft Download Center herunterladen. Anweisungen dazu finden Sie unter Herunterladen von Beispieldatenbanken.

Übersicht

Der erste Teil dieser exemplarischen Vorgehensweise besteht aus vier Hauptaufgaben:

  • Erstellen einer Projektmappe

  • Hinzufügen eines DataRepeater-Steuerelements

  • Hinzufügen einer Datenquelle

  • Hinzufügen datengebundener Steuerelemente

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Anpassen der Entwicklungseinstellungen in Visual Studio.

Erstellen einer DataRepeater-Projektmappe

Im ersten Schritt erstellen Sie ein Projekt und eine Projektmappe.

So erstellen Sie eine DataRepeater-Projektmappe

  1. Klicken Sie in Visual Studio im Menü Datei auf Neues Projekt.

  2. Erweitern Sie im Bereich Projekttypen des Dialogfelds Neues Projekt den Eintrag Visual Basic, und klicken Sie dann auf Windows.

  3. Klicken Sie im Bereich Vorlagen auf Windows Forms-Anwendung.

  4. Geben Sie im Feld Name die Zeichenfolge DataRepeaterApp ein.

  5. Klicken Sie auf OK.

    Der Windows Forms Designer wird geöffnet.

  6. Wählen Sie im Windows Forms-Designer das Formular aus. Legen Sie im Fenster Eigenschaften für die Size-Eigenschaft den Wert 800, 700 fest.

Hinzufügen eines DataRepeater-Steuerelements

In diesem Schritt fügen Sie dem Formular ein DataRepeater-Steuerelement hinzu.

So fügen Sie ein DataRepeater-Steuerelement hinzu

  1. Klicken Sie im Menü Ansicht auf Toolbox.

    Die Toolbox wird geöffnet.

  2. Wählen Sie die Registerkarte Visual Basic PowerPacks aus.

  3. Ziehen Sie ein DataRepeater-Steuerelement auf Form1.

  4. Legen Sie im Eigenschaftenfenster für die Location-Eigenschaft den Wert 0, 25 fest.

  5. Legen Sie für die Size-Eigenschaft den Wert 460, 600 fest.

Hinzufügen einer Datenquelle

In diesem Schritt fügen Sie eine Datenquelle für das DataRepeater-Steuerelement hinzu.

So fügen Sie eine Datenquelle hinzu

  1. Klicken Sie im Menü Daten auf Datenquellen anzeigen.

  2. Klicken Sie im Datenquellenfenster auf Neue Datenquelle hinzufügen.

  3. Wählen Sie auf der Seite Datenquellentyp auswählen die Option Datenbank aus, und klicken Sie auf Weiter.

  4. Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung aus einen der folgenden Schritte aus:

    • Wenn in der Dropdownliste eine Datenverbindung zur Beispieldatenbank Northwind verfügbar ist, klicken Sie auf diese.

      - oder -

    • Klicken Sie auf Neue Verbindung, um eine neue Datenverbindung zu konfigurieren. Weitere Informationen hierzu finden Sie unter How to: Create Connections to SQL Server Databases.

  5. Sollte für die Datenbank ein Kennwort erforderlich sein, wählen Sie die Option für die Einbeziehung vertraulicher Daten aus, und klicken Sie anschließend auf Weiter.

    Hinweis

    Klicken Sie in dem ggf. angezeigten Dialogfeld auf Ja, um die Datei im Projekt zu speichern.

  6. Klicken Sie auf der Seite Verbindungszeichenfolge in der Programmkonfigurationsdatei speichern auf Weiter.

  7. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen.

  8. Aktivieren Sie die Kontrollkästchen neben den Tabellen Customers und Orders, und klicken Sie dann auf Fertig stellen.

    NorthwindDataSet wird dem Projekt hinzugefügt, und die Tabellen Customers und Orders werden im Fenster Datenquellen angezeigt.

Hinzufügen datengebundener Steuerelemente

In diesem Schritt fügen Sie datengebundene Steuerelemente zu DataRepeater hinzu.

So fügen Sie datengebundene Steuerelemente hinzu

  1. Wählen Sie im Fenster Datenquellen den Knoten der obersten Ebene für die Tabelle Customers aus.

  2. Ändern Sie den Ablagetyp der Tabelle in Details, indem Sie in der Dropdownliste des Tabellenknotens auf Details klicken.

  3. Wählen Sie den Knoten der Tabelle Customers aus, und ziehen Sie diesen auf den Elementvorlagenbereich (der obere Bereich) des DataRepeater-Steuerelements.

    Dem Formular wird ein BindingNavigator-Steuerelement hinzugefügt, und die Komponenten NorthwindDataSet, CustomersBindingSource, CustomersTableAdapter, TableAdapterManager und CustomersBindingNavigator werden der Komponentenleiste hinzugefügt.

  4. Wählen Sie alle Felder und die zugehörigen Bezeichnungen aus, und positionieren Sie diese entlang der linken Kante des Elementvorlagenbereichs.

  5. Wählen Sie die letzten fünf Felder (Region, Postal Code, Country, Phone und Fax) sowie die zugehörigen Bezeichnungen aus, und verschieben Sie diese an eine Position oberhalb und rechts von den ersten sechs Feldern.

  6. Wählen Sie die Elementvorlage (der obere Bereich des Steuerelements) aus.

  7. Legen Sie im Eigenschaftenfenster für die Size-Eigenschaft den Wert 427, 170 fest.

Sie verfügen nun über eine funktionsfähige Anwendung, die eine wiederholte Liste von Kunden anzeigt. Drücken Sie F5, um die Anwendung auszuführen, die Daten zu ändern und Kundendatensätze hinzuzufügen oder zu löschen.

In dem nächsten, optionalen Schritt erfahren Sie, wie Sie das DataRepeater-Steuerelement anpassen.

Nächste Schritte (optional)

Dieser Teil der exemplarischen Vorgehensweise besteht aus vier optionalen Aufgaben:

  • Ändern der Darstellung des DataRepeater-Steuerelements

  • Verhindern, dass Benutzer Datensätze hinzufügen oder löschen

  • Hinzufügen einer Suchfunktion zum DataRepeater-Steuerelement

  • Hinzufügen einer Master- und einer Detailtabelle zum DataRepeater-Steuerelement

Ändern der Darstellung des DataRepeater-Steuerelements

In diesem optionalen Schritt ändern Sie zur Entwurfszeit die BackColor des DataRepeater-Steuerelements. Darüber hinaus fügen Sie Code hinzu, um Zeilen in unterschiedlichen Farben anzuzeigen und um die ForeColor-Bedingung einer Bezeichnung zu ändern.

So ändern Sie die Darstellung des Steuerelements

  1. Wählen Sie im Windows Forms-Designer den Hauptbereich (unten) des DataRepeater-Steuerelements aus.

  2. Legen Sie im Eigenschaftenfenster die BackColor-Eigenschaft auf Weiß fest.

  3. Doppelklicken Sie auf DataRepeater, um den Code-Editor zu öffnen.

  4. Klicken Sie im Code-Editor in der Ereignis-Dropdownliste auf DrawItem.

  5. Fügen Sie im DrawItem-Ereignishandler den folgenden Code hinzu, um die BackColor zu wechseln.

    ' 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. Fügen Sie im DrawItem-Ereignishandler den folgenden Code hinzu, um die ForeColor einer Bezeichnung in Abhängigkeit einer Bedingung zu ändern.

    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. Drücken Sie die Taste F5, um die Anwendung auszuführen und die Anpassungen anzuzeigen.

Verhindern, dass Benutzer Datensätze hinzufügen oder löschen

In diesem optionalen Schritt fügen Sie Code hinzu, durch den verhindert wird, dass Benutzer Datensätze zum DataRepeater-Steuerelement hinzufügen oder aus diesem entfernen.

So verhindern Sie, dass Benutzer Datensätze hinzufügen und löschen

  1. Doppelklicken Sie im Windows Forms-Designer auf das Formular, um den Code-Editor zu öffnen.

  2. Fügen Sie folgenden Code zum Form_Load-Ereignis hinzu:

    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. Klicken Sie in der Dropdownliste Klassenname auf BindingNavigatorDeleteItem. Klicken Sie in der Dropdownliste Methodenname auf EnabledChanged.

  4. Fügen Sie dem BindingNavigatorDeleteItem_EnabledChanged-Ereignishandler folgenden Code hinzu:

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

    Hinweis

    Dieser Schritt ist erforderlich, da BindingSource die DeleteItem-Schaltfläche bei jeder Änderung des aktuellen Datensatzes aktiviert.

  5. Drücken Sie F5, um die Anwendung auszuführen. Beachten Sie, dass die DeleteItem-Schaltfläche deaktiviert ist und dass Sie mit der ENTF-TASTE keine Elemente löschen können.

Hinzufügen einer Suchfunktion zum DataRepeater-Steuerelement

In diesem optionalen Schritt implementieren Sie die Möglichkeit, nach einem Wert im DataRepeater-Steuerelement zu suchen. Wenn der Suchbegriff gefunden wurde, markiert das Steuerelement das Element, das diesen Wert enthält, und führt zum Anzeigen des Elements einen Bildlauf durch.

So fügen Sie eine Suchfunktion hinzu

  1. Ziehen Sie ein TextBox-Steuerelement aus der Toolbox auf das Formular mit dem DataRepeater-Steuerelement.

    Positionieren Sie es unter dem DataRepeater-Steuerelement.

  2. Ändern Sie im Eigenschaftenfenster die Name-Eigenschaft in SearchTextBox.

  3. Ziehen Sie ein Button-Steuerelement aus der Toolbox auf das Formular mit dem DataRepeater-Steuerelement. Positionieren Sie es unter dem DataRepeater-Steuerelement.

  4. Ändern Sie im Eigenschaftenfenster die Name-Eigenschaft in SearchButton. Ändern Sie die Text-Eigenschaft in Search.

  5. Doppelklicken Sie auf das Button-Steuerelement, um den Code-Editor zu öffnen, und fügen Sie dem SearchButton_Click-Ereignishandler den folgenden Code hinzu.

    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. Drücken Sie F5, um die Anwendung auszuführen. Geben Sie in SearchTextBox eine Kunden-ID ein, und klicken Sie auf die Schaltfläche Search.

Hinzufügen einer Master- und einer Detailtabelle zum DataRepeater-Steuerelement

In diesem optionalen Schritt fügen Sie ein zweites DataRepeater-Steuerelement hinzu, um verbundene Aufträge für jeden Kunden anzuzeigen.

So fügen Sie eine Master- und eine Detailtabelle hinzu

  1. Ziehen Sie von der Registerkarte Visual Basic PowerPacks in der Toolbox aus ein zweites DataRepeater-Steuerelement auf das Formular.

  2. Legen Sie im Eigenschaftenfenster für die Location-Eigenschaft den Wert465, 25 fest.

  3. Legen Sie für die Size-Eigenschaft den Wert 315, 600 fest.

  4. Erweitern Sie im Fenster Datenquellen den Tabellenknoten Customers, und wählen Sie den Detailknoten für die Tabelle Orders aus.

  5. Ändern Sie den Ablagetyp der Tabelle Orders in Details, indem Sie in der Dropdownliste des Tabellenknotens auf Details klicken.

  6. Ziehen Sie den Tabellenknoten Orders auf den Elementvorlagenbereich (den oberen Bereich) des zweiten DataRepeater-Steuerelements.

    Der Komponentenleiste werden eine OrdersBindingSource-Komponente und eine OrdersTableAdapter-Komponente hinzugefügt.

  7. Drücken Sie F5, um die Anwendung auszuführen. Wenn Sie einzelne Kunden in dem ersten DataRepeater-Steuerelement auswählen, werden die Aufträge des jeweiligen Kunden in dem zweiten DataRepeater-Steuerelement angezeigt.

Siehe auch

Aufgaben

Gewusst wie: Anzeigen von gebundenen Daten in einem DataRepeater-Steuerelement (Visual Studio)

Gewusst wie: Anzeigen von nicht gebundenen Steuerelementen in einem DataRepeater-Steuerelement (Visual Studio)

Gewusst wie: Ändern des Layouts eines DataRepeater-Steuerelements (Visual Studio)

Gewusst wie: Anzeigen von Elementheadern in einem DataRepeater-Steuerelement (Visual Studio)

Gewusst wie: Suchen von Daten in einem DataRepeater-Steuerelement (Visual Studio)

Gewusst wie: Erstellen eines Master-/Detailformulars mit zwei DataRepeater-Steuerelementen (Visual Studio)

Gewusst wie: Ändern der Darstellung eines DataRepeater-Steuerelements (Visual Studio)

Gewusst wie: Deaktivieren des Hinzufügens und Löschens von DataRepeater-Elementen (Visual Studio)

Problembehandlung beim DataRepeater-Steuerelement (Visual Studio)

Konzepte

Einführung in das DataRepeater-Steuerelement (Visual Studio)