在AjaxControlToolkit中有一个控件ReorderList可以实现拖动排序,它的示例程序用的是ObjectDataSource作数据源,而且数据没有保存到数据库中。我把它改成绑定到DataTable,并且数据是保存到数据库中。
以下是关键代码
protected void ReorderList1_ItemReorder(object sender,AjaxControlToolkit.ReorderListItemReorderEventArgs e)
{
String queryString = "select * from Menu order by Priority asc";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
DataTable dt = GetData(queryString).Tables[0];
DataRowCollection rows = dt.Rows;
int oldIndex = e.OldIndex;
int newIndex = e.NewIndex;
string SortOrderField = this.ReorderList1.SortOrderField;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int NewListOrder = (int)rows[newIndex][SortOrderField];
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if (oldIndex < newIndex) //item moved down
{
for (int i = oldIndex + 1; i <= newIndex; i++)
{
rows[i][SortOrderField] = (int)rows[i][SortOrderField] - 1;
}
}
else //item moved up
{
for (int i = oldIndex - 1; i >= newIndex; i--)
{
rows[i][SortOrderField] = (int)rows[i][SortOrderField] + 1;
}
}
rows[oldIndex][SortOrderField] = NewListOrder;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
BatchUpdate(dt,10);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
BindReorderList();
}
源码:Reorder.rar
以下是关键代码
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
源码:Reorder.rar