Traduction▲
Cet article est la traduction la plus fidèle possible de l'article original de Christian Wenz: Using a ConfirmButton In a Repeater
Présentation▲
L'extender du contrôle ConfirmButton de l'AJAX Control Toolkit crée une popup Oui/Non lorsque l'utilisateur clique sur un bouton (y compris le contrôle LinkButton). Seulement si l'on clique sur Oui, l'action du bouton est exécutée, sinon elle est annulée. Cela est également possible dans un repeater.
Etapes▲
Tout d'abord, nous avons besoin d'une source de données.
Cet exemple utilise la base de données AdventureWorks et Microsoft SQL Server 2005 Express Edition.
La base de données est une partie optionnelle de l'installation de Visual Studio (y compris l'édition Express) et est également disponible en téléchargement séparé à cette emplacement.
La base de données AdventureWorks fait partie des exemples SQL Server 2005 (à télécharger à cette adresse).
La façon la plus simple à mettre en place la base de données est d'utiliser Microsoft SQL Server Management Studio Express et d'ajouter à la solution le fichier AdventureWorks.mdf.
Pour cet exemple, nous supposons que l'instance de SQL Server 2005 Express Edition est appelée SQLEXPRESS et qu'elle réside sur la même machine que le serveur web. Il s'agit de la configuration par défaut.
Si votre configuration est différente, vous devez adapter les informations de connexion pour la base de données en conséquence.
Afin d'activer les fonctionnalités d'ASP.NET AJAX et du Control Toolkit, le contrôle ScriptManager doit être présent sur la page (à l'intérieur de la balise <form>) :
<asp:
ScriptManager ID
=
"asm"
runat
=
"server"
/>
Ensuite, une source de données est nécessaire. Afin d'utiliser une quantité limitée de données, nous ne sélectionnons que les cinq premières entrées de la table Vendor de la base de données AdventureWorks. Si vous utilisez l'assistant de Visual Studio pour créer la source de données, ayez à l'esprit qu'un bug dans la version actuelle ne préfixe pas le nom de la table (Vendor) avec Purchasing. Le code suivant montre la syntaxe correcte :
<asp:
SqlDataSource ID
=
"sds1"
runat
=
"server"
ConnectionString
=
"Data Source=(local)\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"SELECT TOP 5 [VendorID], [Name] FROM [Purchasing].[Vendor]"
/>
Cette source de données peut ensuite être utilisée dans un repeater. Comme d'habitude, la méthode DataBinder.Eval() récupère les données de la source de données. Le contrôle ConfirmButtonExtender doit alors être placée à l'intérieur de la section <ItemTemplate> du repeater qui apparaît pour chaque entrée de la source de données.
<div>
<ul>
<asp:
Repeater ID
=
"rep1"
DataSourceID
=
"sds1"
runat
=
"server"
>
<ItemTemplate>
<li>
<%#DataBinder.Eval(Container.DataItem, "Name"
)%>
<asp:
LinkButton ID
=
"btn1"
Text
=
"Remove Item"
runat
=
"server"
/>
<ajaxToolkit:
ConfirmButtonExtender ID
=
"cfe1"
runat
=
"server"
TargetControlID
=
"btn1"
ConfirmText
=
"Are you sure?!"
/>
</li>
</ItemTemplate>
</asp
:
Repeater>
</ul>
</div>