Hi Burty, my solution ended up being a little different to what is above. the code is as follows. the LoadReorderList is just a subroutine that populates the reorderlist and should also be in your page load.
Protected Sub rlPageContents_ItemReorder(ByVal sender As Object, ByVal e As AjaxControlToolkit.ReorderListItemReorderEventArgs) Handles rlPageContents.ItemReorder
Dim sbMessage As New System.Text.StringBuilder()
Dim lowerBound As Integer = (IIf(e.OldIndex > e.NewIndex, e.NewIndex, e.OldIndex))
Dim upperBound As Integer = (IIf(e.OldIndex > e.NewIndex, e.OldIndex, e.NewIndex))
Dim incrementer As Integer = (IIf(e.OldIndex > e.NewIndex, 0, 1))
sbMessage.Append("LowerBound : " & lowerBound)
sbMessage.Append("<br>upperbound : " & upperBound)
sbMessage.Append("<br>Incrementer : " & incrementer)
Dim pageContentLogic As New PageContentsBLL()
Dim ID As Integer = Convert.ToInt32(rlPageContents.DataKeys(e.OldIndex))
Dim OrderBy As Integer = Convert.ToInt32(e.NewIndex)
Dim updated As Boolean = pageContentLogic.UpdatePageContentOrderByID(ID, OrderBy)
sbMessage.Append("<br>Iteration : 0<br>")
sbMessage.Append("ID : " & ID & " ---- OrderBy : " & OrderBy)
For i As Integer = lowerBound + incrementer To upperBound + (incrementer - 1)
ID = Convert.ToInt32(rlPageContents.DataKeys(i))
OrderBy = i + (IIf(incrementer = 0, 1, -1))
updated = pageContentLogic.UpdatePageContentOrderByID(ID, OrderBy)
sbMessage.Append("<br>Iteration : " & i & "<br>")
sbMessage.Append("ID : " & ID & " ---- OrderBy : " & OrderBy)
Next
LoadReorderList()
'lblMessage.Text = sbMessage.ToString()
End Sub hope this helps let me know if there is anything else