|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CRÉATION D'UN GRIDVIEW DANS UN REPEATER
Information sur la source
Description
Bonjour, L'exemple suivant à pour but de répondre (de façon simple) à deux questions qui ressortent souvent dans les forums : 1 – Comment ajouter et gérer un contrôle dans une Repeater (Dans notre exemple un GridView). 2 – Comment ajouter et gérer un bouton personnalisé dans un GridView. Pour utiliser mon exemple, vous devez avant tout créer une base de donnée nommée viewgrid puis une table Utilisateurs. Voici le script SQL de création de la table : CREATE TABLE [dbo].[Utilisateurs] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [Nom] [varchar] (30) COLLATE French_CI_AS NOT NULL , [Prenom] [varchar] (30) COLLATE French_CI_AS NOT NULL , [Ville] [varchar] (30) COLLATE French_CI_AS NOT NULL ) ON [PRIMARY] GO Puis remplir la table avec quelques lignes de tests. Attention à bien mettre plusieurs fois la même ville pour que l'exemple soit concluant (voir la photo de l'exemple). Voilà, bon code. Walter
Source
' ********************************************
' *** A copier dans la page default.aspx :
' ********************************************
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Un GridView dans un Repeater</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<b>Un GridView dans un Repeater</b><br /> <br />
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<b>Ville : <%#Container.DataItem("Ville")%></b><br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:BoundField DataField="Nom" HeaderText="Nom" />
<asp:BoundField DataField="Prenom" HeaderText="Prénom" />
<asp:BoundField DataField="Ville" HeaderText="Ville" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btEditer" runat="server" Text="Editer" CommandArgument='<%# Container.DataItem("ID")%>' OnCommand="GridView1_Editer" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
</ItemTemplate>
</asp:Repeater>
<asp:Label ID="lbMessage" runat="server" Text="" EnableViewState="False" ></asp:Label>
</div>
</form>
</body>
</html>
' ********************************************
' *** A copier dans la page default.aspx.vb :
' ********************************************
Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page
' Chaine de connexion à la base de données
Public chaineConnexion As String = "Data Source=localhost;Integrated Security=True;database=viewgrid"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Si la page n'est pas en PostBack
If Not Page.IsPostBack Then
' Génération du Repeater
Repeater1.DataSource = dsListeVilles()
Repeater1.DataBind()
End If
End Sub
''' <summary>
''' Sub déclanchée au moment de la construction d'un élément du Repeater
''' </summary>
Sub Repeater1_ItemDataBound(ByVal Sender As Object, ByVal e As RepeaterItemEventArgs)
' Si il s'agit d'un élément Item ou AlternatingItem.
If (e.Item.ItemType = ListItemType.Item) Or (e.Item.ItemType = ListItemType.AlternatingItem) Then
' Récupération du nom de la ville.
Dim myVille As String = DirectCast(e.Item.DataItem, DataRowView).Item("Ville").ToString
' Stock le GridView1 dans une variable
Dim myGridView As GridView = CType(e.Item.FindControl("GridView1"), GridView)
' Construction du GridView
myGridView.DataSource = dsListeUtilisateurs(myVille)
myGridView.DataBind()
End If
End Sub
''' <summary>
''' Evénement sur le bouton Editer du GridView
''' </summary>
Protected Sub GridView1_Editer(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
' Récupération du bouton
Dim myButton As Button = CType(sender, Button)
' Affiche un message
lbMessage.Text = "ID de l'utilisateur : " & myButton.CommandArgument
End Sub
''' <summary>
''' Retourne un DataSet contenant la liste de toutes les villes
''' </summary>
Private Function dsListeVilles() As DataSet
' Création d'une instance de connexion
Dim myConnexion As SqlConnection = New SqlConnection(chaineConnexion)
' Création d'un DataSet
Dim myDataset As New DataSet
' Envoie de la requette
Dim dtr As New SqlClient.SqlDataAdapter("Select Distinct Ville from Utilisateurs Order By Ville", myConnexion)
' Peuple le DataSet
dtr.Fill(myDataset)
' Retourne le DataSet
Return myDataset
End Function
''' <summary>
''' Retourne un DataSet contenant les utilisateurs pour une ville
''' </summary>
Private Function dsListeUtilisateurs(ByVal nomVille As String) As DataSet
' Création d'une instance de connexion
Dim myConnexion As SqlConnection = New SqlConnection(chaineConnexion)
' Création d'un DataSet
Dim myDataset As New DataSet
' Envoie de la requette
Dim dtr As New SqlClient.SqlDataAdapter("Select * from Utilisateurs Where (Ville = '" & nomVille & "') Order By Nom", myConnexion)
' Peuple le DataSet
dtr.Fill(myDataset)
' Retourne le DataSet
Return myDataset
End Function
End Class
Historique
- 21 août 2007 19:12:31 :
- Corrections suite aux remarques de jesusonline.
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Image Button [ par elpens ]
Bonjour, Je suis actuellement bloqué et je recherche un peu d'aide.Voilà:J'ai un gridView lié avec une db qui m'affiche des alertes. J'aimerais que qu
button dans un repeater [ par fguigui ]
Bonjour à tous,Dans une webform j'ai un Repeater à l'intérieur duquel j'ai des textbox, label et button du genre : <ctrl:RepeatBudgets ID="R
Anomalie lors de l'afichage d'un gridview ou autre objet de données [ par Magjjy ]
Bonjour,Je travaille avec Visual Studio 2005 et lorsque j'ajoute dans un projet (vierge ou non) un objet de type gridview, detailsview ..., à l'execut
écrire en mejiscule dans gridview [ par krouks212 ]
Bonjour, s'il vous je vous écrire en majiscule dans les champs de texte, que j'ai déja transformés en template, de mon GridView lors de la modificatio
Retrouver un élément dans un gridview paginé [ par maXrez ]
Bonjour, J'ai actuellement un gridview dans un updatepanel, ce qui me permet d'activer la pagination et de ne pas avoir de raffraichissement lorsque j
figer le header d'un gridview scrollé [ par equinoxe83 ]
Bonjour à tous !Je cherche une solution pour disposer d'un scoll vertical dans un gridview tout en conservant le header fixe. J'ai bien trouvé sur le
Accès à un userControl depuis Repeater [ par YannVB ]
Bonjour,je souhaite accéder à un UserControl contenu dans l'itemTemplate d'un Repeater de ma webform, de manière à alimenter dynamiquement les proprié
Somme dans un gridview [ par benamb ]
BonjourVoilà je voulais savoir s'il était possible de calculer la somme des champs (quantité) qui se trouve dans mon gridview.<table id="gv_cde_client
ButtonField du GridView [ par tleon ]
Bonjour,J'ai un gridView, contenant un ButtonField. Comment je peux recuperer le gridView.SelectedRow.RowIndex. au click du ButtonFieldMerci.
GridView en asp.net 2005 [ par gentilkhalil ]
Bonjour,j ai un probleme ce que je narrive pas a faire des modifications et suppressions sur un gridview avec un dataset sur asp.net 2005/code vb.net,
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|