Używanie ogłaszania zwrotnego z kontrolką ReorderList (C#)
Autor: Christian Wenz
Kontrolka ReorderList w zestawie narzędzi AJAX Control Toolkit udostępnia listę, którą użytkownik może zmienić kolejność za pomocą przeciągania i upuszczania. Za każdym razem, gdy lista zostanie zmieniona, ogłaszanie zwrotne informuje serwer o zmianie.
Omówienie
Kontrolka ReorderList
w zestawie narzędzi AJAX Control Toolkit udostępnia listę, którą użytkownik może zmienić kolejność za pomocą przeciągania i upuszczania. Za każdym razem, gdy lista zostanie zmieniona, ogłaszanie zwrotne informuje serwer o zmianie.
Kroki
Istnieje kilka możliwych źródeł danych dla kontrolki ReorderList
. Jednym z nich jest użycie kontrolki XmlDataSource
:
<asp:XmlDataSource ID="XmlDataSource1" runat="server" XPath="acronym/letter">
<Data>
<acronym>
<letter char="A" description="Asynchronous" />
<letter char="J" description="JavaScript" />
<letter char="A" description="And" />
<letter char="X" description="XML" />
</acronym>
</Data>
</asp:XmlDataSource>
Aby powiązać ten kod XML z kontrolką ReorderList
i włączyć ogłaszanie zwrotne, należy ustawić następujące atrybuty:
DataSourceID
: identyfikator źródła danychSortOrderField
: właściwość do sortowania wedługAllowReorder
: czy zezwolić użytkownikowi na zmienianie kolejności elementów listyPostBackOnReorder
: czy należy utworzyć ogłaszanie zwrotne przy każdym przemiezieniu listy
Oto odpowiedni znacznik dla kontrolki:
<ajaxToolkit:ReorderList ID="rl1" runat="server" SortOrderField="char"
AllowReorder="true"
DataSourceID="XmlDataSource1" PostBackOnReorder="true">
W kontrolce ReorderList
określone dane ze źródła danych mogą być powiązane przy użyciu Eval()
metody :
<DragHandleTemplate>
<div class="DragHandleClass">
</div>
</DragHandleTemplate>
<ItemTemplate>
<div>
<asp:Label ID="ItemLabel" Text='<%# Eval("description") %>' runat="server" />
</div>
</ItemTemplate>
</ajaxToolkit:ReorderList>
W dowolnym miejscu na stronie etykieta będzie przechowywać informacje o ostatniej zmiany kolejności:
<div>
<asp:Label ID="lastUpdate" runat="server" />
</div>
Etykieta ta jest wypełniona tekstem w kodzie po stronie serwera, który obsługuje ogłaszanie zwrotne:
<script runat="server">
void Page_Load()
{
if (Page.IsPostBack)
{
lastUpdate.Text = "List last reordered at " +
DateTime.Now.ToLongTimeString();
}
}
</script>
Na koniec, aby aktywować funkcje ASP.NET AJAX i Control Toolkit, kontrolka ScriptManager
musi zostać umieszczona na stronie:
<asp:ScriptManager ID="asm" runat="server" />
Każda zmiana kolejności wyzwala ogłaszanie zwrotne (kliknij, aby wyświetlić obraz o pełnym rozmiarze)