[exemple]controle repeater

Soyez le premier à donner votre avis sur cette source.

Vue 28 792 fois - Téléchargée 706 fois

Description

P'tit exemple qui montre l'utilisation d'un controle repeater en asp.net
langage utilise vb.net.

Parametrage du controle repeater :
----------------------------------

Le controle repeater comme son nom l'indique, permet
de repeter plusieurs fois le meme code html en liant
chaque element a un enregistrement.

Tout est dans le .zip

Syntaxe generale :
-------------------

<asp:Repeater id="Nomducomposant" runat="server">

<HeaderTemplate>
contenu html correspondant a l'entete (pas obligatoire)
</HeaderTemplate>

<ItemTemplate>
contenu html correspondant aux elements (obligatoire)
Placez ici votre gabarit, le moule html
<table>
<tr>
<td>
.....
</table>
</ItemTemplate>

<AlternatingItemTemplate>
si l'on souhaite afficher une ligne sur deux (pas obligatoire)
</AlternatingItemTemplate>

<SeparatorTemplate>
Contenu du separateur (Pas obligatoire)
</SeparatorTemplate>

<FooterTemplate>
correspond au pied de page(Pas obligatoire)
</FooterTemplate>

</repeater>

La liaison entre le gabarit et la source de données correspondante
s'effectue grace a la methode DataBind() du controle Repeater.

Voici sa syntaxe :
------------------

<%# DataBinder.Eval(Container.DataItem, "Votre_champ_a_afficher") %>

Pour faire tourner ce script :
-------------------------------

ouvrez le fichier base.sql situé ds le dossier table et faites un copier coller du contenu ds l'analyseur de requetes
de sql serveur.
Inserez quelques enregistrements afin de pouvoir tester le tout.
ouvrez le fichier global.asax et mettez le nom de votre base, moi j'ai utilise le meme nom pour la base et la table c'est
a dire client :-)!
Ensuite ouvrez le fichier customersdeleteFile avec webmatrix et pressez F5..

Ca roule...

Source / Exemple :


<%@ Page Language="VB" Debug="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Drawing" %>
<script runat="server">

    'DECLARATION CONNECTION POUR TOUTES LES FONCTIONS
     Dim myConnection As SqlConnection
    
    
         'CHARGEMENT DE LA PAGE
         Sub Page_Load(sender As Object, e As EventArgs)
    
                    afficheclient()    
         End Sub
    
    
        'AFFICHAGE DE LA PAGE
         sub afficheclient()
    
           'declaration variables
    
              Dim myAdapter      as SqlDataAdapter
              Dim MyDataTable    as DataTable
              Dim SQL            As String
    
           'recuperation de la connection
              myConnection = Ctype(Session("myConnection"),sqlConnection)
    
           'PROCEDURE STOCKEE
              sql = "rrcustomers"
    
            'definitoin source de donnees
              myAdapter = new sqlDataAdapter(sql,myconnection)
              myAdapter.selectCommand.commandType = CommandType.storedProcedure
    
            'lien avec source de donnees
               myDataTable = new DataTable()
               MyAdapter.fill(myDataTable)
    
    
              rcustomers.dataSource = myDataTable.defaultview
              rcustomers.databind()
    
         End Sub
    
    
    
    'EVENEMENT ONTIEMCOMMAN
         Sub OnItemCommand(sender As Object, e As RepeaterCommandEventArgs)
    
         'declaration variables
             Dim SQL As String
             Dim myCommand  As SqlCommand
    
            'CHAINE SQL SUPPRESSION
             SQL = "DELETE FROM client WHERE id = "+e.CommandArgument
    
             myCommand = new SqlCommand(SQL,myConnection)
             myCommand.ExecuteNonQuery()
             afficheclient()
    
         End Sub
    
     'EVENEMENT ONITEMCREATED
    Sub OnItemCreated(sender As Object,e As RepeaterItemEventArgs)
    
             Dim myDeleteButton As LinkButton
    
             If  (e.Item.ItemType=ListItemType.Item) Then
                   myDeleteButton = e.Item.FindControl("btnDelete")
                   myDeleteButton.Attributes.Add("onclick","return confirm('Confirmez-vous la suppression de ce client?');")
             End If
    
         End Sub

</script>
<html>
<head>
</head>
<body>
    <form id="titre" runat="server">
        <link href="feuille.css" type="text/css" rel="stylesheet" />
        <div align="center"><asp:Label id="Label1" style="Z-INDEX: 100; POSITION: absolute" runat="server">Suppression
            de personnes dans la table Client</asp:Label>
        </div>
        <br />
        <br />
        <div align="center">
            <asp:Repeater id="Rcustomers" runat="server" OnItemCreated="OnItemCreated" OnItemCommand="OnItemCommand">
                <ItemTemplate>
                    <table bordercolor= "black" cellspacing="0">
                        <tr bgcolor="#aaaadd">
                            <td width="350">
                                <b>Num Customers :</b><%# DataBinder.Eval(Container.DataItem, "ID") %> 
                            </td>
                            <td width="70" align="right">
                                <asp:linkbutton id="btndelete" commandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>' runat="server"> [Supprimer]</asp:linkButton>
                            </td>
                        </tr>
                        <tr bgcolor="#ffffc0">
                            <td width="350">
                                <b>Nom du client </b><%# DataBinder.Eval(Container.DataItem, "Nom") %> 
                            </td>
                        </tr>
                        <tr bgcolor="#ffffc0">
                            <td width="350">
                                <b>Adresse du client : </b><%# DataBinder.Eval(Container.DataItem, "Adresse") %> 
                            </td>
                        </tr>
                        <tr bgcolor="#ffffc0">
                            <td width="350">
                                <b>Code postale : </b><%# DataBinder.Eval(Container.DataItem, "CodePostal") %> 
                            </td>
                        </tr>
                        <tr bgcolor="#ffffc0">
                            <td width="350">
                                <b>Ville : </b><%# DataBinder.Eval(Container.DataItem, "Ville") %> 
                            </td>
                        </tr>
                    </table>
                </ItemTemplate>
                <separatorTemplate>
                    <br />
                </separatorTemplate>
            </asp:Repeater>
        </div>
    </form>
</body>
</html>

Conclusion :


Enjoy
Christophe

http://membres.lycos.fr/annmysql/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_padova
Messages postés
3
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
8 juin 2004
-
Merci Jimmy69 pour cette info. As-tu une idée comment différencier le premier record du repeater par rapport aux suivants. Par exemple, je voudrais afficher la première adresse en rouge et les suivantes dans une autre couleur. Une brillante idée ?
cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
salut salut padova,

Oui une brillante idée...mais honnetement je ne vois pas trop comment faire....car je t'avoue que je debute avec ce langage....

Mais je vais y cogiter....crois moi et si je trouve je te fais signe...

Passes une bonne semaine

ciao
cs_padova
Messages postés
3
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
8 juin 2004
-
Bonsoir Jimmy69, merci d'avance pour ton temps.
dubvibe
Messages postés
1
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
16 juin 2004
-
Bonjour,
Pour différencier le 1er enregistrement, tu as une propriété : OnItemDataBound
Donc tu rajoute au taf : OnItemDataBound="DataGridOrder_ItemDataBound"

Et dans ton .vb une fonction du style :
Public Sub DataGridOrder_ItemDataBound(ByVal sender As System.Object, ByVal e As DataGridItemEventArgs) Handles DataGridOrder.ItemDataBound
If (e.Item.ItemType ListItemType.Item Or e.Item.ItemType ListItemType.AlternatingItem) Then
' Ici ton check pour savoir si c'est le premier ( fonction à retrouver dans la doc... )
If ... Then
e.Item.BackColor = System.Drawing.Color.LightGray
End If
End If
End Sub

Voilà...
cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
salut salut dubvibe

Superbe je vais tester de suite...

A bientot

ciao dubvibe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.