Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
725
UltraWebGrid (with Async Callbacks involved) - Adds (or deletes) more rows when you're not looking!
posted

Hi,

I have a situation where I have an UltraWebGrid that resides on an UltraWebTab control.  I have client-side buttons for adding/deleting rows from the grid.  This grid behaves pefectly normal when I don't include any AJAX functionality.  However, when I do have AJAX functionality (like simply turning the AsyncMode to On in the UltraWebTab), then the grid will re-issue the add/delete if the user performs the following steps:

(Assume that we have a tab control with 2 tabs.  Tab 1 contains an UltraWebGrid, and two input type="button" controls for adding/deleting.  Tab 2 contains nothing.  External to the tabs is an asp:button, with a server-side event handler.)

1. User begins on tab 1, and clicks on the Add button.  A new row is added to the grid.
2. User changes to Tab 2.
3. User initiates a full Postback while on tab 2 by clicking on the asp:Button. 

When the user goes back to tab 1, there is a second new (phantom) row that has been added to the grid.

Notes:
a) This behaviour is also present when doing client-side deletions. (The row immediately below the one the user intentionally deleted gets "phantom" deleted.)
b) If we insert a step 2b, where the user changes back to Tab 1 before doing the full postback, everything works properly.
c) If we turn the tab's AsyncMode Off everything works properly, UNLESS we add an UpdatePanel to tab 2, and we trigger an event that causes a partial postback (before initiatlng the full postback).  Therefore, the problem appears to be with the partial postback model, and nothing that is unique to the Async Mode of the tab control.  (The tab control just happens to use partial postbacks while using Async Mode.)

I have been able to reproduce this behaviour in a sample project, to remove all third-party dependencies, and take data binding out of the equation.  I have included it as an attachment.

Has anyone experienced anything like this?  Any ideas?

Thanks to anyone who has read this far!

Jamie

UltraWebGridClientState.zip