Async postback does POST then GET

4 posts, 0 answers
  1. xr280xr
    xr280xr avatar
    13 posts
    Member since:
    Aug 2013

    Posted 26 Nov 2013 Link to this post

    I have a user control which contains a RadGrid and two RadDatePickers that let you choose the date range for the grid's data source. I've set up a submit button to trigger a partial postback to update the grid with data for the selected date parameters using a RadAjaxManager.

    <telerik2012:RadAjaxManagerProxy ID="testAjaxManagerProxy" runat="server">
        <AjaxSettings>
            <telerik2012:AjaxSetting AjaxControlID="btnLoadHistory">
                <UpdatedControls>
                    <telerik2012:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik2012:AjaxSetting>
        </AjaxSettings>
    </telerik2012:RadAjaxManagerProxy>
     
        <asp:Panel ID="divSearch" runat="server" style="font: 9pt arial, tahoma">
            <span>From </span>
            <telerik2012:RadDatePicker ID="dpStartDate" runat="server">
            </telerik2012:RadDatePicker>
            <span>To </span>
            <telerik2012:RadDatePicker ID="dpEndDate" runat="server">
            </telerik2012:RadDatePicker>
            <asp:Button ID="btnLoadHistory" runat="server" Text="Go" CausesValidation="False"
                Style="vertical-align: bottom" />
             <asp:CompareValidator ID="CompareValidator1" runat="server"
                ErrorMessage="Invalid Date Range" ControlToCompare="dpEndDate"
                ControlToValidate="dpStartDate" Operator="LessThanEqual" Type="Date"></asp:CompareValidator>
        </asp:Panel>
     
        <telerik2012:RadGrid ID="RadGrid1" runat="server" ...

    This user control is on a SharePoint 2007 page layout & master page. When debugging, I noticed the first time btnLoadHistory is pressed, the Page_Load event was occurring twice. The first time IsPostBack was true, the second time it was false. Using Fiddler, I found that when I press the button, it does the async postback (POST to the page) as you'd expect, when it gets the response, I see the RadGrid update, and then it immediately does a GET on the same page, hence the IsPostBack == false the second time. It only happens the first time after the page initially loads. After that I can click btnLoadHistory and only the expected postback occurs. Any ideas what's going on?
  2. Marin
    Admin
    Marin avatar
    1045 posts

    Posted 29 Nov 2013 Link to this post

    Hi,

    In case of master content you can follow the approach specified in this help topic and add the ajax settings programmatically:
    http://www.telerik.com/help/aspnet-ajax/ajax-masterpage-update-everywhere.html


    Regards,
    Marin
    Telerik
    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 the blog feed now.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. xr280xr
    xr280xr avatar
    13 posts
    Member since:
    Aug 2013

    Posted 02 Dec 2013 Link to this post

    Thanks for your response, Marin. I'm not following how that applies to the issue of a GET being submitted to the server after the postback. Can you please clarify? My wording may have been misleading as well. What I meant to say was the user control is on a SharePoint page layout, which uses a master page. The RadAjaxManager resides on the master page, hence the RadAjaxManagerProxy in use in the UserControl. However, the async request is initiated from a control within the UserControl and only the RadGrid within the UserControl is updated by the response. The link you posted seems to address how to communicate between master page and content page, which is not the case here. What I need to determine is how to eliminate the GET request that is occurring after the first postback completes.
  5. Marin
    Admin
    Marin avatar
    1045 posts

    Posted 03 Dec 2013 Link to this post

    Hello,

    Thank you for providing additional information on the issue.
    Indeed a second GET request is not expected here, but it is not clear what might have caused it. You can check whether you have any server or client-side code that additionally makes a postback or an ajax request which can cause such issues. You can also test simpler scenarios to see if the same problem is observed first without any ajax on the page and then instead of RadAjaxManager and RadAjaxManagerProxy you can wrap the grid and date pickers in a RadAjaxPanel to see if this makes a change.
    When using the RadAjaxManager in more complex scenarios of master page and user controls another option might also be to add the ajax settings programmatically in the Load event of the user control instead of using RadAjaxManagerProxy.

    I hope this helps.

    Kind Regards,
    Marin
    Telerik
    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 the blog feed now.
Back to Top