[ASPX]ReorderList 範例實做應用拖拉排序使用SQL DataSource

摘要:[ASPX]ReorderList 範例實做應用拖拉排序使用SQL DataSource

今天Dotjum要跟大家介紹一下 ReorderList 這個控制項,真的非常的有趣,
而且針對排序方面的拖拉就能改變,真的很輕鬆。
話說是這樣的,今天的情境,剛好有各客戶,要更動一些資料的排序,
而且是蠻多張表單的排序,客戶原本出了各Excel請Dotjum調整,
Dotjum心裡想想,自己跑到SQL去改實在太辛苦了,就趕緊實做這各界面出來。
話不多說,請看範例
首先,這個範例是參考MS AJAX原廠網站的 ReorderList Sample 及 章立民老師 書中章節 ,
先說明一下資料欄位 主鍵、顯示、排序
image

Step 1. 首先 先拉 AJAX Control 到畫面來

<ajaxToolkit:ReorderList ID="ReorderList1" runat="server" PostBackOnReorder="true" DataSourceID="SqlDataSource1" DataKeyField="主鍵欄位 SortOrderField="Sort欄位" ItemInsertLocation="End" DragHandleAlignment="Left" CssClass="reorderList" CallbackCssStyle="cssCallBack" ShowInsertItem="true" AllowReorder="true"> <ItemTemplate> <%# Eval("Sort欄位")%> <%# Eval("主鍵欄位")%> </ItemTemplate> <EmptyListTemplate> 很抱歉!沒有資料可供顯示與重排。 </EmptyListTemplate> <DragHandleTemplate> <div class="cssDragHandle"></div> </DragHandleTemplate> <ReorderTemplate> <asp:Panel ID="panReorderTmp" runat="server" CssClass="cssReorder"> 請拖曳資料項目,以便調整順序。 </asp:Panel> </ReorderTemplate> </ajaxToolkit:ReorderList>

Step 2. 設定 SqlDataSource
因為我們要使用到 SELECT 跟 UPDATE 所以這兩邊都要設定

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT a AS 主鍵,b AS 顯示,C AS 排序 FROM Table1 ORDER BY FCM_Sort" OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE Table1 SET 排序 = @排序 WHERE 主鍵=@Original_主鍵 " ConflictDetection="CompareAllValues"> <UpdateParameters> <asp:Parameter Name="Original_主鍵" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource>

這邊要注意的  OldValuesParameterFormatString="original_{0}" 這個要設定一下,至於為什麼,Dotjum還找不到一個比較好的解釋,
下一個修改的範例,在跟大家說明。
Step 3. 就能直接使用拖拉的方式,就會更新順序。
image image image
就這樣簡簡單單,就做出一個可以直接推拉就執行UPDATE順序,最重要的是,
他還幫你算了一下順序,其他號碼都直接往後退了一碼,這個功能真的很酷,
之前Dotjum為了做類似的東西,還要先把資料Sort丟到Array,然後分析資料再更新,
沒想到 Reorder List 輕輕鬆鬆就做出來,只需三個步驟。
這次有趣嗎?下次在介紹有趣的給你知道。