Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie jede Zeile eines ASP.NET DataGrid-Steuerelements durchlaufen und ermitteln, ob das ASP.NET CheckBox-Serversteuerelement, das zum Identifizieren der Zeile verwendet wird, ausgewählt wurde.
Originalproduktversion: Visual Basic
Ursprüngliche KB-Nummer: 321881
Zusammenfassung
Der Beispielcode in diesem Artikel verwendet die Microsoft SQL Server Northwind-Datenbank zum Auffüllen des DataGrid-Steuerelements und fügt dann der ersten Spalte für jede Zeile ein CheckBox-Serversteuerelement hinzu. Dies ist eine gängige Technik, mit der Benutzer mehrere, bestimmte Zeilen in einem DataGrid auswählen können.
Dieser Artikel bezieht sich auf die folgenden .NET Framework-Klassenbibliotheksnamespaces:
System.Data.SqlClient
System.Text
Anforderungen
- Windows
- .NET Framework
- Internetinformationsdienste (IIS)
- Visual Studio .NET
Erstellen einer ASP.NET Webanwendung mithilfe von Visual Basic .NET
- Starten Sie Visual Studio .NET.
- Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
- Wählen Sie im Dialogfeld "Neues Projekt" unter "Projekttypen" visual Basic-Projekte aus, und wählen Sie dann unter "Vorlagen" ASP.NET Webanwendung aus.
- Ersetzen Sie im Feld "Speicherort " den Standardnamen "WebApplication#" durch "MyWebApp". Wenn Sie den lokalen Server verwenden, können Sie den Servernamen als
http://localhost
. Das resultierende Feld "Speicherort " wird angezeigt alshttp://localhost/MyWebApp
.
Erstellen der Beispielwebformularseite
Fügen Sie der Webanwendung ASP.NET wie folgt ein neues Webformular hinzu:
- Klicken Sie mit der rechten Maustaste in Projektmappen-Explorer auf den Projektknoten, zeigen Sie auf "Hinzufügen", und klicken Sie dann auf "Webformular hinzufügen".
- Geben Sie im Feld "Name" MySample.aspx ein, und wählen Sie dann "Öffnen" aus.
Ändern Sie im Eigenschaftenfenster die pageLayout-Eigenschaft für das Dokument in FlowLayout. Obwohl Sie dies nicht tun müssen, um den Beispielcode zu verwenden, wird die Präsentation dadurch übersichtlicher dargestellt.
Fügen Sie der Seite ein DataGrid-Steuerelement, eine Schaltfläche und ein Bezeichnungsserver-Steuerelement wie folgt hinzu:
- Ziehen Sie ein ASP.NET DataGrid-Serversteuerelement aus der Web Forms-Toolbox auf die Seite.
- Ändern Sie im Eigenschaftenfenster die ID des DataGrid-Steuerelements in DemoGrid.
- Ziehen Sie ein ASP.NET Button-Serversteuerelement aus der Web Forms-Toolbox auf die Seite unterhalb des DataGrid.
- Ändern Sie im Eigenschaftenfenster die ID des Schaltflächen-Steuerelements in "GetSelections", und ändern Sie dann die Texteigenschaft in "Auswahl abrufen".
- Ziehen Sie ein ASP.NET Bezeichnungsserver-Steuerelement aus der Web Forms-Toolbox auf die Seite unterhalb des Schaltflächen-Steuerelements.
- Ändern Sie im Eigenschaftenfenster die ID des Steuerelements "Label" in "ResultsInfo", und löschen Sie dann jeden Text in der Text-Eigenschaft.
Wechseln Sie in die HTML-Ansicht im Editor. Fügen Sie den Code zur Standardmäßigen DataGrid-Vorlage hinzu, um die Spalten zu erstellen. Der resultierende Code für das Steuerelement sollte wie folgt angezeigt werden:
<asp:DataGrid id="DemoGrid" runat="server" DataKeyField="CustomerID"> <Columns> <asp:TemplateColumn HeaderText="Customer"> <ItemTemplate> <asp:CheckBox ID="myCheckbox" Runat="server" /> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid>
Klicken Sie mit der rechten Maustaste auf die Seite, und klicken Sie dann auf "Code anzeigen". Dadurch wird die CodeBehind-Klassendatei im Editor geöffnet. Fügen Sie der CodeBehind-Klassendatei die folgenden Namespaceverweise hinzu:
Imports System.Data.SqlClient Imports System.Text
Ersetzen Sie den vorhandenen Code für den
Page_Load
Ereignishandler durch den folgenden Code:Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then 'Create a SqlConnection object. 'Modify the connection string as necessary for your environment. Dim cn As SqlConnection = New SqlConnection("Server=localhost;database=Northwind;UID=sa;PWD=") Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Customers", cn) cn.Open() Dim reader As SqlDataReader = cmd.ExecuteReader() DemoGrid.DataSource = reader DataBind() reader.Close() cn.Close() End If End Sub
Wechseln Sie zur Entwurfsansicht, und doppelklicken Sie dann auf "GetSelections". Dadurch wird die CodeBehind-Klassendatei im Editor geöffnet. Ersetzen Sie den vorhandenen Code im
GetSelections_Click
Ereignishandler durch den folgenden Code:Private Sub GetSelections_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetSelections.Click Dim rowCount As Integer = 0 Dim gridSelections As StringBuilder = New StringBuilder()'Loop through each DataGridItem, and determine which CheckBox controls 'have been selected. Dim DemoGridItem As DataGridItem For Each DemoGridItem In DemoGrid.Items Dim myCheckbox As CheckBox = CType(DemoGridItem.Cells(0).Controls(1), CheckBox) If myCheckbox.Checked = True Then rowCount += 1 gridSelections.AppendFormat("The checkbox for {0} was selected<br>", _ DemoGrid.DataKeys(DemoGridItem.ItemIndex).ToString()) End If Next gridSelections.Append("<hr>") gridSelections.AppendFormat("Total number selected is: {0}<br>", rowCount.ToString()) ResultsInfo.Text = gridSelections.ToString() End Sub
Überprüfen, ob sie funktioniert
Klicken Sie im Menü "Datei " auf " Alle speichern", um das Webformular und andere Dateien zu speichern, die dem Projekt zugeordnet sind.
Klicken Sie im Menü "Erstellen" in der integrierten Entwicklungsumgebung (IDE) von Visual Studio auf " Projektmappe erstellen".
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf die Webseite (MySample.aspx), und klicken Sie dann im Browser auf "Anzeigen". Beachten Sie, dass auf der Seite die Daten im Raster angezeigt werden. Darüber hinaus wird in der ersten Spalte jeder Zeile ein Kontrollkästchen angezeigt. Der Benutzer kann klicken, um dieses Kontrollkästchen zu aktivieren, um bestimmte Zeilen zu markieren.
Klicken Sie, um einige der Kontrollkästchen für die Zeilen auszuwählen, und klicken Sie dann auf " Auswahl abrufen".
Nachdem die Seite einen Roundtrip zum Server erstellt und den Code im
GetSelections_Click
Ereignishandler ausführt, wird eine Liste der Elemente angezeigt, die Sie im vorherigen Schritt ausgewählt haben. Der Code imGetSelections_Click
Ereignishandler durchläuft die einzelnenDataGridItem
Elemente in Ihrem ASP.NET DataGrid-Serversteuerelement, bestimmt, ob die Checked-Eigenschaft des zugehörigen CheckBox-Steuerelements wahr ist, und zeichnet dann den zugeordneten Schlüsselwert an dieser bestimmten Position für dasDataKeys
DataGrid auf.