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/
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.