RadAjaxPanel not updating __ViewState

2 posts, 0 answers
  1. Tim
    Tim avatar
    4 posts
    Member since:
    Sep 2011

    Posted 22 May 2012 Link to this post

    I'm having a problem with my RadAjaxPanel and my viewstate.

    We are keeping our last ten viewstates in session. The problem is on a certain page.. the user hits the page and selects a CATEGORY from a drop down. Another drop down is populated with CategoryTYPES depending on the CATEGORY that was selected.

    To keep the page from posting back, I have a RadAjax panel around the controls on the page.

    After selecting a CATEGORY/TYPE, the user can add that combination to a listbox and select another CATEGORY/TYPE. These selections are then used in a search that populates a RadGrid.

    Our legacy system allowed the users to then use the browser back / forward buttons to move backward and forward, which loaded each viewstate version from memory. So each step was saved.

    With my RadAjax panel on the page though, the hidden __VIEWSTATE value is not being updated on the page. I can see my SavePageStateToPersistenceMedium Sub is firing and that my subsequent viewstates are being saved to memory, but since the hidden field isn't being updated on the page, I'm continually loading the wrong version of the page (the original version from when I first hit the page)  after doing an actual postback.

    I think my main problem is the hidden field __VIEWSTATE is not getting updated. The hidden field has no runat="server" on it since it's being put there dynamically, and although I've managed to find the control and read the value from it, I can't find a way to update it during the ajax postback.  

    I've tried adding EnableViewState="true" to my ajax panel, but I'm still not updating the hidden field on the page when then ajax postback occurs.

    I know I can't be the only one who's run into this and I'm hoping someone has a solution or even a work around that will allow me to keep track of where I'm at and what viewstate version I'm supposed to be loading when the user tries to browse backwards or forwards.

    And yes, I know.. but they insist on being able to use the BACK and FORWARD browser buttons, so I have to live with it.  :)

    I appreciate any suggestions or tips on how I can get around this problem...
    ~TFlick
  2. Maria Ilieva
    Admin
    Maria Ilieva avatar
    4017 posts

    Posted 28 May 2012 Link to this post

    Hi Tim,

    Note that the presented behaviour is a generic MS Ajax issue related to the browser history and it could be easily replicated using regular asp UpdatePanels instead of RadAjaxPanel control.

    Generally speaking, the ajax controls are using xmlhttp requests which update silently parts of the page. The browser Back and Forward functionality is only available when a full postback has occurred and that is the reason for them not to remember the last page state after ajax request.

    You can however enable the browser back and forward buttons by enabling history through the ScriptManager on the page. For more information refer to the below articles: http://msdn.microsoft.com/en-us/library/cc488548.aspx

    http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.addhistorypoint.aspx

    http://dotnetslackers.com/articles/aspnet/AFirstLookAtASPNETExtensions35HistoryPoints.aspx



    Kind regards,
    Maria Ilieva
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Back to Top