Rank: Newbie Groups: Member
Joined: 3/7/2011 Posts: 2
|
Hi,
I really liked the progress bar and spent some time figuring out how to integrate into my application. I now have a really great indicator for the progress of building a list of objects to be displayed in the grid control.
However, the grid control is never refreshed once the progress bar is finished. I can trace the server side code and the Grid1.DataSource and Grid1.DataBind commands are definitely being executed.
After much tinkering with Update Panels (thinking that was the root cause) I was finally able to determine that NO page controls are refreshed at the end of the Run Task method, and I now have a new appreciation for this comment, in the sample code:
//You can not change anything else in the page inside //RunTask handler except for calling UpdateProgress. //If you do need to change other contents on the page //based on progress information, you can make use of //the second parameter of UpdateProgress.
So, I guess that I am unable to immediately refresh the grid - but is there some other way to do this - like forcing a page submit on the final update?
It seems a trifle ironic that we can show the progress of a long running task, but not show the result of that task being completed? Surely, I must be missing something here?
BTW, the problem is easily reproduced using your sample code for "Server Side Task - Advanced 1" - simply add a label control to this page, then add a line of code to the server side ProgressBar1_RunTask method, which sets the label text. Whether you use a label, or an EO.Web.Grid control, the result is the same - except that I can populate the label clients side, but not the grid.
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,195
|
Hi,
Please take a look of "Server Side Task - Advanced 2" sample. Basically you need to return the client side first after the ProgressBar is done, then initiate a second round trip (this round trip would be normal) to the server to do whatever additional update you need to do.
Thanks
|