Here's a bug with the ATLAS UpdatePanel: If you have invisible controls in the updatepanel that require PostBack scripts to be embedded into the page, and you then later enable

 

I just build a progressbar sample that simulates a long running request on the server and it starts out displaying the progress bar and the DataGrid that eventually is used to display the data is not loaded because no data has yet been loaded into it. After the processing is complete, the code goes back and fetches the data updates the DataGrid.

 

Works fine except if you now put paging or sorting or link buttons – anything that requires __doPostBack() scripts – that code won't work.

 

Makes sense. ASP.NET generates that code only if there's a control on the page that needs it and when the page originally renders it doesn't need it. However on the Callback it only updates the areas of the page that have changed not the entire page. The script block that's missing not included.

 

Workaround: Drop a linkbutton onto the form outside of panels and set style="display:none" on it. That'll force the script to be loaded.

 

Now I suspect there will be other places this can bite - anything where ASP.NET normally injects script into the page is potentially vulnerable to this same behavior.