Comment créer une ligne récapitulative pour un DataGrid dans ASP.NET à l’aide de Visual Basic .NET
Cet article pas à pas explique comment créer une ligne récapitulative pour un contrôle DataGrid dans ASP.NET à l’aide de Visual Basic .NET.
Version d’origine du produit : Visual Basic .NET
Numéro de la base de connaissances d’origine : 313154
Résumé
Dans cet article, vous allez créer un projet .NET Visual Basic, ajouter du code pour accéder à l’affichage nommé Sales Totals by Amount à partir de la base de données Northwind , puis lier la vue Sales Totals by Amount à DataGrid. Cet exemple utilise l’événement ItemDataBound
de DataGrid pour totalisation du champ SaleAmount lorsque vous liez les données à DataGrid. Cet exemple utilise également le pied de page du DataGrid pour afficher le résumé ou les totaux.
Cet article fait référence à l’espace de noms System.Data.SqlClient
bibliothèque de classes Microsoft .NET Framework .
Remarque
Pour obtenir une version Microsoft Visual C# .NET de cet article, consultez 326339.
Configuration requise
La liste suivante décrit le matériel, les logiciels, l’infrastructure réseau et les Service Packs recommandés :
- Microsoft Windows
- Microsoft .NET Framework
- Microsoft Visual Studio .NET
- Microsoft Internet Information Services (IIS)
- Microsoft SQL Server 7.0 ou version ultérieure et la base de données Northwind
Remarque
La base de données Northwind est incluse dans SQL sServer 7.0 et versions ultérieures.
Créer un projet .NET Visual Basic et ajouter dataGrid
Dans cette section, vous créez un projet .NET Visual Basic, sélectionnez un format pour DataGrid, puis définissez DataGrid pour afficher le pied de page. Étant donné que vous utilisez le pied de page pour afficher le résumé, il est important d’afficher le pied de page.
Remarque
Par défaut, la propriété ShowFooter est désactivée.
Démarrez Visual Studio .NET. L’IDE Visual Studio .NET s’affiche.
On the File menu, point to New, and then click Project.
Dans la boîte de dialogue Nouveau projet , cliquez sur Projets Visual Basic sous Types de projets, puis cliquez sur ASP.NET application web sous Modèles.
Dans la boîte de dialogue Nouveau projet , notez que la zone Nom n’est pas disponible (elle apparaît grisée). La zone Emplacement contient le texte suivant (ou similaire) :
http://localhost/WebApplication1
Remplacez l’emplacement
http://localhost/SummaryRow
par , puis cliquez sur OK. Un projet est créé, qui inclut un formulaire web nommé WebForm1.aspx.Dans Explorateur de solutions, double-cliquez sur WebForm1.aspx.
Faites glisser un contrôle DataGrid de la boîte à outils vers le formulaire.
Cliquez avec le bouton droit sur le contrôle DataGrid, puis cliquez sur Format automatique. Cliquez sur Couleur 1, puis sur OK.
Cliquez avec le bouton droit sur le contrôle DataGrid , puis cliquez sur Propriétés. Dans la boîte de dialogue Propriétés , remplacez la valeur de la propriété ShowFooter par True.
Écrire du code pour accéder à la base de données
Dans cette section, vous utilisez la vue Sales Totals by Amount qui se trouve dans la base de données Northwind pour calculer le résumé du champ SaleAmount. L’affichage Ventes totales par montant inclut les champs Commandes, CompanyName et SaleAmount.
Dans l’IDE, cliquez avec le bouton droit sur le formulaire web, puis cliquez sur Afficher le code.
Dans la fenêtre code-behind, ajoutez le code suivant en haut de la page :
Imports System.Data Imports System.Data.SqlClient
Ajoutez le code suivant dans la section déclaration de classe :
Private myTotal As System.Double 'This variable tracks the running total.
Remplacez le code dans l’événement
Page_Load
par le code suivant :Private Sub Page_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'Connect to the database, retrieve data, and then fill the data in the DataSet. Dim myConnection As New SqlConnection("server=(local)\netsdk;"Integrated Security=SSPI" & _ pwd=;database=northwind") Dim myDataAdapter As New SqlDataAdapter("SELECT top 15 [OrderID], [CompanyName], " & _ "[SaleAmount] FROM [Northwind].[dbo].[Sales Totals by Amount]", myConnection) Dim myDataSet As New DataSet() myDataAdapter.Fill(myDataSet) 'Set the DataSource for the DataGrid, and then bind the data. DataGrid1.DataSource = myDataSet DataGrid1.DataBind() End Sub
Modifiez le chaîne de connexion en fonction de votre environnement.
Utiliser l’événement ItemDataBound
L’événement ItemDataBound
est déclenché une fois qu’un élément est lié à des données liées au contrôle DataGrid. Cet événement vous donne la dernière possibilité d’accéder à l’élément de données avant qu’il n’apparaisse sur le client. Une fois cet événement déclenché, l’élément de données est null et n’est plus disponible.
Pour chaque élément lié aux données, vous devez case activée la ItemType
propriété . Si ItemType
est de type Item
ou AlternatingItem
, vous recevez la valeur de la dernière cellule de l’élément, qui contient la valeur SaleAmount. Dans cet exemple, vous ajoutez cette valeur à la variable récapitulative en cours d’exécution. Lorsque a la ItemType
valeur Footer
, vous recevez le total de toutes les lignes. Par conséquent, vous affectez la valeur de la variable de résumé à la valeur de texte de la dernière cellule.
Remarque
Ce code utilise des expressions de mise en forme pour fournir une apparence uniforme pour les données SaleAmount.
Ajoutez le code suivant après l’événement Page_Load
:
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.AlternatingItem, ListItemType.Item
'Calculate total for the field of each row and alternating row.
myTotal += CDbl(e.Item.Cells(2).Text)
'Format the data, and then align the text of each cell to the right.
e.Item.Cells(2).Text = Format(CDbl(e.Item.Cells(2).Text), "##,##0.00")
e.Item.Cells(2).Attributes.Add("align", "right")
Case ListItemType.Footer
'Use the footer to display the summary row.
e.Item.Cells(1).Text = "Total Sales"
e.Item.Cells(1).Attributes.Add("align", "left")
e.Item.Cells(2).Attributes.Add("align", "right")
e.Item.Cells(2).Text = myTotal.ToString("c")
End Select
End Sub
Générer le projet et tester le code
- Dans le menu Fichier, cliquez sur Enregistrer tout.
- Dans le menu Générer, cliquez sur Générer la solution.
- Dans Explorateur de solutions, cliquez avec le bouton droit sur la page .aspx, puis cliquez sur Afficher dans le navigateur. La page .aspx s’affiche dans le navigateur, et dataGrid affiche les colonnes OrderID, CompanyName et SaleAmount. Notez que le pied de page affiche le total de la colonne SaleAmount.
References
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour