通用的排序的上移下移功能
前兩天需要實現一個上移下移功能,就上網上搜了一下,沒想到這個簡單的小功能也沒有搜到特別理想的結果,只有自己動手豐衣足食了,雖然簡單,但是希望對大家有所幫助。
功能:實現任意有排序欄位表單的上移和下移,並可以按分類來操作排序。
首先是儲存過程:寫的稍微有些繁瑣,可能是半夜太困了吧
1 ALTERPROCEDURE[dbo].[Proc_Common_UpDown] 2 3 4 @Signint=0, -- 0: 上移 1:下移 5 @TableNamenvarchar(50), -- 表名 6 @ItemNamenvarchar(50), -- 主鍵欄位名 7 @ItemIDint,19 @ThisSortint, -- 當前ID20 @PREVIDint, -- 前一個ID21 @NextIDint, -- 後一個ID22 @Countint23 24 --臨時索引表--25 CREATETABLE #Tab
26 (
28 Sort int29 )
30 SET@SQL='INSERT INTO #Tab (ItemID,Sort) SELECT '31 +@ItemName+','+@SortName+' FROM '+@TableName32 33 IF (@TypeName<>''AND@TypeValue<>'') SET@SQL=@SQL+' WHERE '+@TypeName+'='+@TypeValue34 SET@SQL=@SQL+' ORDER BY Sort ASC '35 EXEC(@SQL)
36 SET
39 SELECT@ThisSort= Sort FROM #Tab WHERE ItemID =@ItemID40 IF(@ThisSort>1) SELECT@PREVID= ItemID FROM #Tab WHERE Sort=(@ThisSort-1)
41 IF(@ThisSort<@Count) SELECT@NextID= ItemID FROM #Tab WHERE Sort=(@ThisSort+1)
42 43 IF(@Sign=0)
44 BEGIN45 IF(@ThisSort>1)
46 BEGIN47 SET@SQL='UPDATE '+@TableName+' SET '+@SortName+'='+CONVERT(varchar(100),(@ThisSort-1))+' WHERE '+@ItemName+' = '+CONVERT(varchar(100),@ItemID) +';'48 +'UPDATE '+@TableName+' SET '+@SortName+'='+CONVERT(varchar(100),@ThisSort)+' WHERE '+@ItemName+' = '+CONVERT(varchar(100),@PREVID)
49 50 END51 END52 ELSE53 BEGIN54 IF(@ThisSort<@Count)
55 BEGIN56 SET@SQL='UPDATE '+@TableName+' SET '+@SortName+'='+CONVERT(varchar(100),(@ThisSort+1))+' WHERE '+@ItemName+' = '+CONVERT(varchar(100),@ItemID) +';'57 +'UPDATE '+@TableName+' SET '+@SortName+'='+CONVERT(varchar(100),@ThisSort)+' WHERE '+@ItemName+' = '+CONVERT(varchar(100),@NextID)
58 END59 END60 61 EXEC(@SQL)
62 63 END64
資料層的公共類:
publicclass Common{
publicstatic Database db = DatabaseFactory.CreateDatabase("Huoqk_CMS");
///<summary>/// 上移下移
///</summary>///<param name="Sign">移動方向:0 上移, 1下移</param>///<param name="TableName">表名</param>///<param name="ItemName">主鍵名</param>///<param name="ItemID">主鍵ID</param>///<param name="SortName">排序欄位</param>///<param name="TypeName">型別名</param>///<param name="TypeValue">型別ID</param>publicstaticvoid UPDown(int Sign, string TableName, string ItemName, int ItemID, string SortName, string TypeName, string TypeValue)
{
string spName ="Proc_Common_UpDown";
DbCommand dbCommand = db.GetStoredProcCommand(spName);
db.AddInParameter(dbCommand, "Sign", DbType.Int32, Sign);
db.AddInParameter(dbCommand, "TableName", DbType.String,TableName);
db.AddInParameter(dbCommand, "ItemName", DbType.String, ItemName);
db.AddInParameter(dbCommand, "ItemID", DbType.Int32, ItemID);
db.AddInParameter(dbCommand, "SortName", DbType.String, SortName);
db.AddInParameter(dbCommand, "TypeName", DbType.String, TypeName);
db.AddInParameter(dbCommand, "TypeValue", DbType.String, TypeValue);
db.ExecuteNonQuery(dbCommand);
}
}
資料層(DAL)具體的呼叫:CMS_Channel 表的排序功能
publicvoid UPDown(int sign, int itemid){
Common.UPDown(sign, "CMS_Channel", "CID", itemid, "Sort", "", "");
}
至於業務邏輯層或者Web層的呼叫基本就很簡單了:
UPDown(111, 0);上移
UPDown(111, 1);下移
相關推薦
通用的排序的上移下移功能
前兩天需要實現一個上移下移功能,就上網上搜了一下,沒想到這個簡單的小功能也沒有搜到特別理想的結果,只有自己動手豐衣足食了,雖然簡單,但是希望對大家有所幫助。 功能:實現任意有排序欄位表單的上移和下移,並可以按分類來操作排序。 首先是儲存過程:寫的稍微有些繁瑣,可能是半夜太困
mssql 實現排序上移下移
MSSQL: 儲存過程 -- drop PROCEDURE [dbo].[Proc_sort_UpDown] create PROCEDURE [dbo].[Proc_sort_UpDown] @Sign int = 0, -- 0: 上移 1:下移 @Tabl
AngularJS實現數據列表的增加、刪除和上移下移等功能實例
enter 基礎 round 電子郵件 color bsp 基礎功 net 效果圖 轉: http://www.jb51.net/article/91991.htm 這篇文章給大家分享了AngularJS循環實現數據列表的增加、刪除和上移下移等基礎功能,對大家學習Ang
表格資料的上移與下移功能
【問題】: 在做專案過程中遇到這個需求,根據顯示的需要把列表資料進行上移或者下移的操作。 【分析】: 資料庫中有position這個欄位來管理板塊列表顯示的順序,那麼當需要上移時,我們需要取到比它po
jquery 實現列表上移、下移功能
由於比較忙,好久沒寫新的文章了,雖然本人寫的文章可能對一些高手來說是小菜一碟,但是對於新手來說還是比較難得,重在為和我一樣的小菜鳥提供一個簡單的實現方法,以及一個思路罷了。 那麼,廢話少說,我們開始進入主題。 今天我們實現的是一個列表
jq實現表格上移/下移/置頂功能
這裡主要是運用了選擇器的一些知識,全部程式碼如下: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="
分類排序方法——上移下移操作(ASP版)
最近專案中遇到了上移下移操作的一個操作,以前也看到過,但一直沒有去研究過,這次專案中遇到了,也就去研究了一把,其實實現原理也挺簡單的,說白了就是要記錄資料庫裡的要進行排序表的總記錄數量,然後根據迴圈的次數,多寫幾個隱藏變數,進行上移下移操作的時候進行判斷就可以了。
ThinkPHP 實現新聞後臺資料上移、下移功能
public function moveup(){ //獲取上一條新聞資訊 $m = M('News'); $dataOri = $m->where('orderid='.$
js操作table中tr的順序,實現上移下移一行的效果
總體思路是在table外部加個div,修改div的innerHtml實現改變tr順序的效果 具體思路是 獲取當前要移動tr行的rowIndex,在table中刪除掉,然後迴圈table的rows,到了目標行再直接加進去,最後把整體的html賦值給div完成效果 js程式碼如下 /
jqgrid 上移下移單元格
在表格中常常需要調整表格中資料的顯示順序,我用的是jqgrid,實現原理就是將表中的行數儲存到資料庫中,取資料時按行進行排序 1、上移,下移按鈕 <a href="javascript:void(0)" onclick="operateWithOneRowById(up)" class="li
java comparator 排序 定義比較器內部類的方式排序 通用排序方式 非常靈活
class Products implements Comparable<Products> {private String name;private int num;private Integer price;public String getName()
Android中RecyclerView的item中控制元件的點選事件新增刪除一行、上移下移一行的程式碼實現
Demo展示圖片 佈局程式碼 // (layout)activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/an
html5仿手機通訊錄按字母排序及搜尋功能
1.實現聯絡人字母排序,點選字母跳轉顯示聯絡人組目錄;2.實現聯絡搜尋,動態顯示符合查詢的聯絡人;詳情見資源:https://download.csdn.net/download/huicaipa1943/10304104效果圖如下:<!DOCTYPE HTML PUB
【Axure】--repeater(中繼器)實現行上移下移
案例效果: 案例描述: 點選上下移動的按鈕,移動相應題型順序。 元件準備: 上移、下移圖示: Repeater: Table做表頭: 題型編號: 操作步驟: 雙擊進入Repeater
jquery select 上移下移
網上搜到的,不太明白這個外掛指的是什麼。 但是把程式碼拷到檔案中,修改。確實可以實現上移下移。 <!--jQuery外掛---MultiSelects(左右選框),支援select下option元素的上移下移 原始碼:--> <!DOCTYPE ht
實現上移下移 置頂置底效果
html <div> <span (click)="caretDirection(col,'up')"><i class="anticon anticon-c
GridView 行交換 GridView 行上移下移
using System; using System.Configuration; using System.Data; //using System.Linq; using System.Web; using System.Web.Security; using Syst
div 上移下移技術
要移到中間,就有上移與下移 <META http-equiv=Content-Type content="text/html; charset=utf-8"> <STYLE> .a7container {FLOAT: left; WIDTH: 385
easyui datagrid實現單行的上移下移,以及儲存移動的結果
開始接觸easyui感覺他的封裝真是極佳的,善假於物的思想使我們善於站在巨人的肩膀上,人家封裝好這麼好的外掛直接讓俺們使用,我們在需求不同可進行簡單的調整。 </span>//調整展示次序載入圖片 function UpDownFormat(va
table行的上移下移 上下移動
<script type="text/javascript"> $(document).ready(function () { $('.moveup').bind('click', function (e) { v