ThinkGeo.com    |     Documentation    |     Premium Support

Javascript and Postback persistance

Hello,


I use a lot javascript API on MapSuite but I have a problem when I do an asyncPostback. In my code behind, the state of the Map (TrackMode, CurrentOverlay ...) seems not to be updated according to javascript changes.


the Map and the control buttons are not in the same update panel.


Example : User click on a button that put the trackmode from None To Edit. When I do a AsyncPostback from the control buttons's Update Panel, Map1.EditOverlay.TrackMode is still at None.


To avoid that, i do all my TrackMode change in code behind but the user experience is quitte disapointing.


I would like to know if there is a way to make Javascript API and Code Behind synchronized? Is the two UpdatePanel is the problem?



Alexandre, 
  
 You are right. We only synchronize some critical properties in our web edition. The draw mode is not include in it. After post back, the client states lost.  
  
 I have a workaround for you. 
 1, Add a hidden field which is run at server on your aspx page. 
 2, Whenever the map mode changed, save it in the hidden field. 
 3, After async post back in the PageLoad method, you can get the string which saved in the hidden field by its Id. 
 4, Reflect the string to the map mode and reset to map. 
  
 Hope it helps. Any questions please let me know. 
  
 Thanks, 
 Howard

Yes it’s what i have done as a workaround  The problem is that it redraw my backgroundoverlay and my shapeoverlay. It’s very annoying if the user naviguate quickly between tool. 
  


Alexandre, 
  
 I mean to set the current draw mode on the client side while you call the client method to change the track mode. When you do a post back, we synchronize the track mode to the server only once. I don’t think it’s a bad user experience.  
  
 Hope there is no misunderstanding. Any questions please let me know. 
  
 Thanks, 
 Howard