Usar un ConfirmButton en un control Repeater (C#)

por Christian Wenz

Descargar PDF

El control extensor ConfirmButton del Kit de herramientas de control de AJAX crea un elemento emergente Yes/No cuando el usuario hace clic en un botón (incluido el control LinkButton). Solo si se hace clic en Yes, se ejecuta la acción del botón; de lo contrario, se cancela. Esto también es posible en un repetidor.

Información general

El control extensor ConfirmButton del Kit de herramientas de control de AJAX crea un elemento emergente Yes/No cuando el usuario hace clic en un botón (incluido el control LinkButton). Solo si se hace clic en Yes, se ejecuta la acción del botón; de lo contrario, se cancela. Esto también es posible en un repetidor.

Pasos

En primer lugar, se requiere un origen de datos. En este ejemplo se usa la base de datos AdventureWorks y Microsoft SQL Server 2005 Express Edition. La base de datos es una parte opcional de una instalación de Visual Studio (incluido Express Edition) y también está disponible como una descarga independiente en https://go.microsoft.com/fwlink/?LinkId=64064. La base de datos AdventureWorks forma parte de los ejemplos y bases de datos de ejemplo de SQL Server 2005 (puede descargarla en https://www.microsoft.com/download/details.aspx?id=10679). La manera más fácil de configurar la base de datos es usar Microsoft SQL Server Management Studio (/sql/ssms/download-sql-server-management-studio-ssms) y adjuntar el archivo de base de datos AdventureWorks.mdf.

En este ejemplo, se supone que la instancia de SQL Server 2005 Express Edition se llama SQLEXPRESS y reside en la misma máquina que el servidor web; esta es también la configuración predeterminada. Si la configuración es diferente, tiene que adaptar la información de conexión de la base de datos.

Para activar la funcionalidad de ASP.NET AJAX y el Kit de herramientas de control, el control ScriptManager debe colocarse en cualquier parte de la página (pero dentro del elemento <form>):

<asp:ScriptManager ID="asm" runat="server" />

A continuación, se requiere el origen de datos. Por motivos de simplicidad, solo se recuperan las cinco primeras entradas de la tabla Vendors de AdventureWorks. Tenga en cuenta que, al usar el asistente de Visual Studio para crear el origen de datos, el nombre de la tabla (Vendors) no tiene actualmente el prefijo Purchasing correcto. El marcado siguiente es el correcto:

<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]" />

A continuación, este origen de datos se puede usar dentro de un repetidor. Como de costumbre, el método DataBinder.Eval() recupera datos del origen de datos. A continuación, el control ConfirmButtonExtender debe colocarse dentro de la sección <ItemTemplate> del repetidor para que aparezca para cada entrada del origen de datos.

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

The confirm button appears next to each entry from the data source

El botón de confirmación aparece junto a cada entrada del origen de datos (haga clic para ver la imagen a tamaño completo).