Pending Review
Last Updated: 21 Jun 2016 14:52 by Alexandre
Alexandre
Created on: 21 Jun 2016 14:52
Category: ComboBox
Type: Bug Report
1
RadComboBox async items request not performed if initiated while an async postback is in progress.
Using the client-side requestItems method of a RadComboBox to fire the refresh of it's items(with a call to clearCache before to ensure that the refresh is performed), doesn't always perform the async callback request, sometimes resulting in the "Loading" text being added at the top of the combo's items drop-down and staying there (as the callback to the server is never fired, so it's result never received). 

After quite a bit of trials, I finally managed to figure out that the issue arise when there is an async postback in progress on the page (to refresh an update panel) when requestItems is called.

Stepping through the requestItems call with IE F12 tools, I found that this is due to the fact that the Sys.WebForms.PageRequestManager do not perform callbacks if there is an async postback in progress. I think that the RadComboBox should detect that situation and wait until the end of the async postback to fire it's requestItems callback, otherwise the combo get stuck in the "loading in progress" state, waiting for the end of the callback that will never happens as the PageRequestManager did not start it. Additionally, in F12 Network tab, I can see that there is no request performed for the callback to request the items of the combo-box.

I reproduce the issue with the following steps:
1- Have a page with a RadComboBox, a ScriptManager with partial rendering enabled and an UpdatePanel.
2- In the browser, trigger the async postback to refresh the UpdatePanel
3- From JavaScript, while the async postback is in progress, call the requestItems method of the RadComboBox
4- Open the drop-down of the combo, and you can see the "Loading" text at the top, with the initial list of items. And it stays like this until another call is made to requestItems when there is no async post-back in progress which will actually perform the callback.
0 comments