Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come scorrere ogni riga di un controllo DataGrid ASP.NET e come determinare se è stato selezionato il controllo server CheckBox ASP.NET utilizzato per identificare la riga.
Versione originale del prodotto: Visual Basic
Numero KB originale: 321881
Riassunto
Il codice di esempio in questo articolo usa il database Northwind di Microsoft SQL Server per popolare il controllo DataGrid e quindi aggiunge un controllo server CheckBox alla colonna iniziale per ogni riga. Si tratta di una tecnica comune che consente agli utenti di selezionare più righe specifiche in un DataGrid.
Questo articolo fa riferimento ai seguenti namespace della libreria di classi .NET Framework:
System.Data.SqlClientSystem.Text
Requisiti
- Windows
- .NET Framework
- Internet Information Services (IIS)
- Visual Studio .NET
Creare un'applicazione Web ASP.NET usando Visual Basic .NET
- Avviare Visual Studio .NET.
- Scegliere Nuovo dal menu Filee quindi selezionare Progetto.
- Nella finestra di dialogo Nuovo progetto selezionare Progetti Visual Basic in Tipi di progetto e quindi selezionare ASP.NET'applicazione Web in Modelli.
- Nella casella Percorso sostituire il nome predefinito WebApplication# con MyWebApp. Se si usa il server locale, è possibile lasciare il nome del server come
http://localhost. La casella Posizione risultante viene visualizzata comehttp://localhost/MyWebApp.
Creare la pagina web form di esempio
Aggiungere un nuovo Web Form all'applicazione Web ASP.NET come indicato di seguito:
- Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, scegliere Aggiungi e quindi fare clic su Aggiungi Modulo Web.
- Nella casella Nome digitare MySample.aspx e quindi selezionare Apri.
Nella finestra Proprietà modificare la proprietà pageLayout per il documento in FlowLayout. Anche se non è necessario eseguire questa operazione per usare il codice di esempio, la presentazione risulterà più pulita.
Aggiungere un controllo DataGrid, un pulsante e un controllo server Etichetta alla pagina come indicato di seguito:
- Trascinare un controllo server DataGrid di ASP.NET dalla casella degli strumenti di Web Forms sulla pagina.
- Nella finestra Proprietà modificare l'ID del controllo DataGrid in DemoGrid.
- Trascinare un controllo server ASP.NET pulsante dalla casella degli strumenti di Web Forms nella pagina sotto DataGrid.
- Nella finestra Proprietà modificare l'ID del controllo Button in GetSelections e quindi modificare la proprietà Text in Get Selections.
- Trascinare un controllo server Label di ASP.NET dalla casella degli strumenti Web Forms nella pagina sotto al controllo Pulsante.
- Nella finestra Proprietà modificare l'ID del controllo Etichetta in ResultsInfo e quindi eliminare qualsiasi testo nella proprietà Text .
Passare alla visualizzazione HTML nell'editor. Aggiungere il codice al modello DataGrid predefinito per costruire le colonne. Il codice risultante per il controllo dovrebbe essere visualizzato come segue:
<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>Fare clic con il pulsante destro del mouse sulla pagina e quindi scegliere Visualizza codice. Verrà aperto il file di classe code-behind nell'editor. Aggiungere i riferimenti allo spazio dei nomi seguenti al file di classe code-behind:
Imports System.Data.SqlClient Imports System.TextSostituire il codice esistente per il
Page_Loadgestore eventi con il codice seguente: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 SubPassare alla visualizzazione Struttura e quindi fare doppio clic su GetSelections. Verrà aperto il file di classe code-behind nell'editor. Sostituire il codice esistente nel
GetSelections_Clickgestore eventi con il codice seguente: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
Verificare che funzioni
Scegliere Salva tutto dal menu File per salvare il Web Form e altri file associati al progetto.
Scegliere Compila soluzione dal menu Compila nell'ambiente di sviluppo integrato (IDE) di Visual Studio .NET.
In Esplora soluzioni fare clic con il pulsante destro del mouse sulla pagina Web Form (MySample.aspx) e quindi scegliere Visualizza nel browser. Si noti che nella pagina vengono visualizzati i dati nella griglia. Inoltre, nella prima colonna di ogni riga viene visualizzata una casella di controllo. L'utente può fare clic per selezionare questa casella di controllo per contrassegnare righe specifiche.
Fare clic per selezionare alcune delle caselle di controllo per le righe e quindi fare clic su Ottieni selezioni.
Dopo che la pagina effettua un round trip al server ed esegue il codice nel
GetSelections_Clickgestore eventi, viene visualizzato un elenco degli elementi selezionati nel passaggio precedente. Il codice nel gestore eventiGetSelections_Clickitera su ciascunDataGridItemcontrollo server DataGrid di ASP.NET, determina se la proprietà Checked del controllo CheckBox correlato è true e quindi registra il valore chiave associato in quella posizione specifica per l'oggettoDataKeysdel DataGrid.
References
Classe DataGrid