DrGriff
DrGriff

Reputation: 4906

ASP.NET AJAX postbacks aborting

I have an ASP.NET web page with two postback events and the second one is aborting the first. The second one then doesn't render as expected once it completes.

In Detail

I have an ASP.NET web page that effectively contains two link buttons. It uses the Telerik ASP.NET AJAX controls, but I'm not sure if the behaviour is specfic to these controls:

The Page - an extremely cut-down version is as follows:

<telerik:RadToolTipManager ID="RadToolTipManager1" runat="server"
  Position="BottomLeft" RelativeTo="Element" ShowEvent="OnClick" 
  HideEvent="ManualClose" Animation="Fade" OnAjaxUpdate="OnShowItems" >  
     <TargetControls>
          <telerik:ToolTipTargetControl TargetControlID="btnShowItems" />
     </TargetControls>
</telerik:RadToolTipManager>
...
...
<asp:LinkButton ID="btnShowItems" runat="server" Visible="false">
     <span><%= ItemsPrompt %></span>
</asp:LinkButton>
...
...
<uc1:X ID="XControl" runat="server"/>

The UserControl "X" - an extremely cut-down version is as follows:

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server"
  LoadingPanelID="LoadingPanel1" RenderMode="Block">
    <asp:LinkButton runat="server" ID="CausePostbackButton" 
      Style="display: none" />
</telerik:RadAjaxPanel>

Use Case #1 - successful

  1. The page loads and a JavaScript timer within Control "X" activates a postback on the LinkButton "CausePostbackButton" [eval(__doPostBack(postbackButtonClientID,''));]. (So, this mimics a user clicking the button).
  2. The AJAX call goes to the Server and n seconds later it returns and results in the page updating in a particular way.
  3. The user then clicks the LinkButton "btnShowItems" which causes a post-back to the Server and n' seconds later it returns and results in the page updating in a particular way.

Use Case #2 - failure

  1. The page loads and a JavaScript timer within Control "X" activates a postback on the LinkButton "CausePostbackButton". (So, this mimics a user clicking the button).

  2. Before the server has time to respond, the User clicks on the LinkButton "btnShowItems".

  3. In FireFox/Firebug, you can see that the first post-back event is "Aborted". The second post-back event completes (you can see the time taken reported) but the page is not visually updated.

  4. If the "manual" button is then clicked again, then that works as expected.

My thoughts

However, if I change the "manual" Link Button to an Image Button then the behaviour does not change.

Any ideas what the problem is (and ideally a solution)?

Many thanks in advance

Griff

Upvotes: 3

Views: 1577

Answers (1)

DrGriff
DrGriff

Reputation: 4906

As Dick Lampard suggested, we contacted Telerik directly. They immediately came up with the solution:

By design ASP.NET AJAX Framework cancels the ongoing ajax request if you try to initiate another one prior to receiving the response from the first one. Set the RequestQueueSize for the RadAjaxPanel to 3 for example...

That worked!

Upvotes: 3

Related Questions