Udostępnij za pośrednictwem


Używanie ogłaszania zwrotnego z kontrolką ReorderList (C#)

Autor: Christian Wenz

Pobierz plik PDF

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 danych
  • SortOrderField: właściwość do sortowania według
  • AllowReorder: czy zezwolić użytkownikowi na zmienianie kolejności elementów listy
  • PostBackOnReorder: 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żde zmienianie kolejności wyzwala ogłaszanie zwrotne

Każda zmiana kolejności wyzwala ogłaszanie zwrotne (kliknij, aby wyświetlić obraz o pełnym rozmiarze)