[exemple]controle repeater

Soyez le premier à donner votre avis sur cette source.

Vue 28 980 fois - Téléchargée 733 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

Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

salut salut agnesh,

ca fait un moment que je ne fais plus d'asp.net !

je te promets rien je vais regarder mais si tu es presse je te conseille de poster ta Q dans le forum !

Bonne fin de semaine

Christophe
un bouillonnais
Messages postés
5
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
6 mai 2009

Bonjour,
je débute en asp.net après avoir fait beaucoup d'asp et je n'arrive pas à trouver comment modifier la couleur d'une ligne de donnée en fonction du code postal par exemple. en fait mon problème est de réussir à modifier une ligne de donnée en fonction d'une des données de la ligne comment lire la onnée sans l'afficher.
POUR AFFICHER LA DONNEE / <%# databinder.Eval(Container.Dataitem,"Champ de la données")%> mais si dans mon controle repeater je veux mettre une exception du genre <% if databinder.eval(Container.Dataitem,"Champ") < 1200 then %> bgcolor=red <% else %> bgcolor=green <% end if%>
Pouvez vous m'aider.
Merci d'avance,
Messages postés
229
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
20 juin 2007

re Jimmy69

La diversité des langages fait que tu n'aide pas toujours celui qui t'aide, mais un autre dans un autre langage. Par exemple moi je débute carrément en ASP/C# (1 semaine de travail à mon actif, gloup's). Mais je peux aidé en VB, en JAVA, etc...

Alors merci a toi, merci à tous, et que le partage continue !
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

salut salut KC62,

c'est ca que je trouve geniale dans l'info ..c'est le partage des connaissances ..

vive la communaute ..

Christophe
un bouillonnais
Messages postés
229
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
20 juin 2007

Salut !
Merci pour ce code ! Trés utile pour apprendre un peu ;-)

KC62
Afficher les 10 commentaires

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.