Well, giving you a sample is going to require a little elbow grease, but in short, you would produce an internal sort array within your IListServer implementation. For example, you will know the field or column that needs to be sorted, so you would create a two part class and collection with a customer IComparer class that would sort and save off the row index so you know how to deal with the BO records. For example,
Sort Item Class (Pseudo Code)
Public Class MySortClass
Object SortValue
int RowIndex
End Class
Then you will need a collection:
Sort Item CollectionPublic MySortCollection
Inherits System.Collections.CollectionBase
'-- Within this class you will create a sort method and the IComparer is already implemented, so you just need to create an IComparer
' class to pass over to the sort that will support your MySortClass logic and structure
End Class
Keep in mind that you will have to most likely pass over a BO at some point here as well (or at least the current row index of the value when the MySortClass item is created. But this will create a sorted collection that is in the right order. You can then either show the collection and when a collection item is selected, it updates the underlying BO row index, or re-order the BO once you know the order of the collection.
Like I said, this is not the easiest thing to just slap out an explanation for as there are a lot of factors, but these are just some possible ideas.