Last post Feb 22, 2012 01:35 AM by BU XI - MSFT
Feb 20, 2012 06:08 PM|pinch|LINK
I am using the ReorderList control from the AJAX Control Toolkit on my fantasy cheat sheet creation site. It appears I am running into some concurrency issues related to fast reordering:
1. If I reorder items slowly (say give a second between each reorder), there is never a problem.
2. If I reorder quickly (say move a record once, then again within a second or so) only the first ordering operation is performed, the second operation is ignored, and ALL FURTHER REORDERING IS IGNORED UNTIL THE PAGE IS RELOADED.
Obviously something is getting locked-up if I reorder quickly. An important note is that this only seems to be occurring in production on a shared hosting account. On my local machine I can go as fast as I want without a problem. It would seem to be that
each reorder request would simply get queued, but apparently that isn't the case.
The code being executed on reorder is as such:
/// This method is fired each time the items are reordered
/// <param name="sender"></param>
/// <param name="e"></param>
protected void rolReorderList_ItemReorder(object sender, ReorderListItemReorderEventArgs e)
// issue the reorder call to the business layer
// we know the id of the sheet is determined by the dropdownlist
CheatSheet.ReorderCheatSheetItems(int.Parse(ddlAvailableSheets.SelectedValue), e.OldIndex, e.NewIndex);
// once the user reorders once, we note that they no longer need to see the instructional message
Profile.SiteSettings.FiguredOutReordering = true;
// we know the id of the sheet by what is stored in a session variable
CheatSheet.ReorderCheatSheetItems((int)Session[MySession.CurrentSportCode + "_" + MySession.GetCurrentVisitorSheetPosition(MySession.CurrentSportCode)], e.OldIndex, e.NewIndex);
// once the visitor reorders once, we note that they no longer need to see the instructional message
MySession.FiguredOutReordering = true;
You can see a demo here.
Feb 22, 2012 01:35 AM|BU XI - MSFT|LINK
If you perform a postback after reordering, then at server side requests may not be processed promptly. You may use tools to see requests and response over the network. If you are in Chrome, try F12 -> network panel, see when you are ordering what requests
are sent and what responses you get, see what HTTP code they've got and see if this is a server side error.