This is a migrated thread and some comments may be shown as answers.

Triggering an ajax refresh of a grid during an existing ajax refresh locks the grid

5 Answers 168 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
Javier
Top achievements
Rank 1
Javier asked on 08 Aug 2012, 02:34 PM
Long story short.  I've got a link button that refreshes the content of a telerik grid.  
I'm using the RadAjaxManager to handle the trigger and update controls.

The linkbutton is the trigger and the radgrid is one of the updated controls.  I'm also using a loading panel to show that an update is in progress.

These grids can have a lot of data and may take a few seconds to refresh.  So if somebody clicks refresh, and before it finishes updating, they click refresh again, the loading panel will display until a hard refresh of the page is done.

How can I avoid this behavior.  

Thanks,
Javier

Edit:  I've learned that this only happens when the LoadingPanel has a mindisplayTime.

5 Answers, 1 is accepted

Sort by
0
Maria Ilieva
Telerik team
answered on 13 Aug 2012, 10:43 AM
Hello,

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. By setting the RequestQueueSize property to a value greater than zero, you are enabling the queueing mechanism of RadAjax, that will allow you to complete the ongoing request and then initiate the pending requests in the control queue.

See the help topic below:
http://www.telerik.com/help/aspnet-ajax/ajax-request-queuesize.html

Also you could disable the link button during ajax request so the subsequent click will not be possible. You could review the help topic below which elaborates on this matter:
http://www.telerik.com/help/aspnet-ajax/ajax-disable-controls-during-ajax.html

I hope this helps.

All the best,
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.
0
Javier
Top achievements
Rank 1
answered on 15 Aug 2012, 02:47 PM
Thanks, although I believe that the infinite loading panel may be a defect and should be looked into.  While the functionality you described makes sense, I'm sure that it was never intended to permanently lock the grid.
0
Antonio Stoilkov
Telerik team
answered on 20 Aug 2012, 10:37 AM
Hi Javier,

I have assembled a sample project based on your description but was not able to replicate the described issue. In order to further investigate the problem you could open a formal ticket attaching sample runnable application showing the unwanted behavior so we could advise you with the best possible solution.

Kind regards,
Antonio Stoilkov
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.
0
Javier
Top achievements
Rank 1
answered on 20 Aug 2012, 12:45 PM
You forgot to set a value for the mindisplay time.

I have a sample app that I'll send in a ticket.

Thanks.
0
Martin
Telerik team
answered on 23 Aug 2012, 07:19 AM
Hello Javier,

I have noticed that my colleague Antonio has already answered the support ticket you have opened on the same topic. To make his post available to our community I am pasting it here:

I have examined the provided project and experienced behavior is expected. When clicking the button a second time the previous request is interrupted and this is causing the issue. In order to resolve your issue you could set RadAjaxManager RequestQueueSize property to number bigger than one as it is shown below.
Copy Code
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1"
    EnablePartialRendering="true" EnablePageMethods="true" EnableScriptCombine="false" RequestQueueSize="2">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadGrid1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="LinkButton1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

I hope this helps.

Regards,
Martin
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.
Tags
Ajax
Asked by
Javier
Top achievements
Rank 1
Answers by
Maria Ilieva
Telerik team
Javier
Top achievements
Rank 1
Antonio Stoilkov
Telerik team
Martin
Telerik team
Share this question
or