Używanie kontrolki ConfirmButton w elemencie powtarzanym (C#)
Autor: Christian Wenz
Rozszerzenie ConfirmButton w zestawie narzędzi AJAX Control Toolkit tworzy wyskakujące okienko Tak/Nie, gdy użytkownik kliknie przycisk (w tym kontrolkę LinkButton). Tylko wtedy, gdy klikniesz przycisk Tak, zostanie wykonana akcja przycisku, w przeciwnym razie anulowana. Jest to również możliwe w powtarzaniu.
Omówienie
Rozszerzenie ConfirmButton w zestawie narzędzi AJAX Control Toolkit tworzy wyskakujące okienko Tak/Nie, gdy użytkownik kliknie przycisk (w tym kontrolkę LinkButton). Tylko wtedy, gdy klikniesz przycisk Tak, zostanie wykonana akcja przycisku, w przeciwnym razie anulowana. Jest to również możliwe w powtarzaniu.
Kroki
Przede wszystkim wymagane jest źródło danych. W tym przykładzie użyto bazy danych AdventureWorks i SQL Server 2005 Express Edition firmy Microsoft. Baza danych jest opcjonalną częścią instalacji programu Visual Studio (w tym wersji ekspresowej) i jest również dostępna jako oddzielny plik do pobrania w obszarze https://go.microsoft.com/fwlink/?LinkId=64064. Baza danych AdventureWorks jest częścią SQL Server 2005 Samples and Sample Databases (pobierz pod adresem https://www.microsoft.com/download/details.aspx?id=10679). Najprostszym sposobem skonfigurowania bazy danych jest użycie programu Microsoft SQL Server Management Studio (/sql/ssms/download-sql-server-management-studio-ssms) i dołączenie AdventureWorks.mdf
pliku bazy danych.
W tym przykładzie przyjęto założenie, że wystąpienie SQL Server 2005 Express Edition jest wywoływane SQLEXPRESS
i znajduje się na tej samej maszynie co serwer internetowy. Jest to również domyślna konfiguracja. Jeśli konfiguracja się różni, musisz dostosować informacje o połączeniu dla bazy danych.
Aby aktywować funkcje ASP.NET AJAX i Control Toolkit, ScriptManager
kontrolka musi zostać umieszczona w dowolnym miejscu na stronie (ale w elemecie <form>
):
<asp:ScriptManager ID="asm" runat="server" />
Następnie wymagane jest źródło danych. Dla uproszczenia pobierane są tylko pierwsze pięć wpisów w tabeli Dostawcy AdventureWorks. Należy pamiętać, że w przypadku tworzenia źródła danych za pomocą kreatora programu Visual Studio nazwa tabeli (Vendors
) nie jest obecnie poprawnie poprzedzona .Purchasing
Następujący znacznik jest poprawny:
<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]" />
To źródło danych może być następnie używane w repeaterze. Jak zwykle DataBinder.Eval()
metoda pobiera dane ze źródła danych. Następnie ConfirmButtonExtender
należy umieścić kontrolkę w <ItemTemplate>
sekcji repeatera, tak aby była wyświetlana dla każdego wpisu w źródle danych.
<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>
Przycisk potwierdzania pojawia się obok każdego wpisu ze źródła danych (kliknij, aby wyświetlić obraz pełnowymiarowy)