首先,我们需要定义一个包含ID和排序值的对象:
public class MoveObject { public int ID { get; set; } public int Order { get; set; } }
接下来,我们需要使用.NET Core提供的API来实现上移、下移、顶部和底部的功能:
//上移
public void MoveUp(List list, int id) { var item = list.FirstOrDefault(x => x.ID == id); if (item == null) return;
var index = list.IndexOf(item);
if (index == 0)
return;
var aboveItem = list[index - 1];
SwapOrder(item, aboveItem);
}
// 下移
public void MoveDown(List list, int id) { var item = list.FirstOrDefault(x => x.ID == id); if (item == null) return;
var index = list.IndexOf(item);
if (index == list.Count - 1)
return;
var belowItem = list[index + 1];
SwapOrder(item, belowItem);
}
// 顶部
public void MoveTop(List list, int id) { var item = list.FirstOrDefault(x => x.ID == id); if (item == null) return;
var index = list.IndexOf(item);
if (index == 0)
return;
var firstItem = list.First();
SwapOrder(item, firstItem);
}
// 底部
public void MoveBottom(List list, int id) { var item = list.FirstOrDefault(x => x.ID == id); if (item == null) return;
var index = list.IndexOf(item);
if (index == list.Count - 1)
return;
var lastItem = list.Last();
SwapOrder(item, lastItem);
}
// 交换排序值
private void SwapOrder(MoveObject item1, MoveObject item2) { int temp = item1.Order; item1.Order = item2.Order; item2.Order = temp; }
以上功能只是互相替换,若有顶部、底部拖拽后,其余数据依次进行排序要求
请查询下一篇文章: