Hi
I am using Infragistics controls 6.3.20063.53 in my ASP.NET 2.0 applications.
I am using UltraWebGrid inside a WARP.
<igmisc:WebAsyncRefreshPanel ID="WebRefreshPanel" runat="server" TriggerControlIDs="ImageButton1,MtDrop,cbActualOp,cbmax,cbRelease,btnReset" InitializePanel="WebRefreshPanel_InitializePanel"> <igtbl:UltraWebGrid ID="gridCriteria" runat="server" Width="700px" OnPreRender="gridCriteria_PreRender">
I am assigning datasource to grid on click on ImageButton1.gridCriteria.DataSource = this.RptDataSet;gridCriteria.DataBind();
function
WebRefreshPanel_InitializePanel(oPanel){oPanel.getProgressIndicator().setImageUrl("../Images/loading.gif");
It works fine when i return smaller datasets. But it does not work if i return large datasets.
The progress indicator is displayed and it does not disappear even after a long time.
Will this happen if an error occurs or Session expires after assigning the source to grid?
How to chek if the refresh is complete?
Is possible to identify the the start and end time of refresh?
Thanks
Ashok
Hi Ashok,
There is no public option to check if WARP is waiting for response. The WARP is one of the users of CallBackManager which does all work related to async postbacks. You may access that manager byvar cbManager = ig_shared.getCBManager();
To change time limit to wait for response, you may change value of cbManager._timeLimit. Original value is 20000 (ms).To get references to all pending callBack objects you may use cbManager._callBacks which is array. That is internal variable and not designed to be used by applications.
Hi Viktor,
Thanks for your response. In our application we have set the session time out as 30 minutes.
The session expires if the page is left idle for 30 minutes. But when i click the button(after session expired) the progress indicator is displayed at the top of the Grid but the Grid is not refreshed.
After that the progress indicator does not disappear at all. How to alert or redirect the user to diffferent page if the session expires.
Hi I'm working on updating or converting infragistics controls to new version. so can some one help me to what can i replace WebAsyncRefreshPanel with in infragistics 20.1 . below one is the mark up I'm trying to convert to new version
<igtbl:WebAsyncRefreshPanel ID="warpGrid" runat="server" Height="99%" Width="100%" TriggerControlIDs="ResultPanel_btnSave" LinkedRefreshControlID="warpMessage" RefreshRequest="warpGrid_RefreshRequest" RefreshComplete="warpGrid_RefreshComplete" RefreshResponse="warpGrid_RefreshResponse" InitializePanel="warp_InitializePanel">
Thank you very much Viktor.
It worked. :)
Hi AniLex,
The WARP on client has few public methods including refresh(). Below is example to use it:
<script type="text/javascript">function refreshWARP(){ var warp = ig$('<%=WebAsyncRefreshPanel1.ClientID%>'); //var warp = ig_getWebControlById('<%=WebAsyncRefreshPanel1.ClientID%>'); warp.refresh();}</script>
<igmisc:WebAsyncRefreshPanel ID="WebAsyncRefreshPanel1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></igmisc:WebAsyncRefreshPanel><input id="refresh" type="button" value="button" onclick="refreshWARP()" />
How to refresh the WebAsyncRefreshPanel from javascript?
If indicator is not stopped, then it means that response is not recieved: server failed to provide response on async postback, or response was not recognized by CallBackManager.
WARP raises on client several ClientSideEvents. If you know (on client) when your session was expired, then you may cancel ClientSideEvents.RefreshRequest and redirect. Below is example:
<script type="text/javascript"> var sessionExpired = false; function WARP1_RefreshRequest(oPanel, oEvent, id) { if(!sessionExpired) return; oEvent.cancel = true; window.location = 'http://google.com'; }</script><igmisc:WebAsyncRefreshPanel ID="WARP1" runat="server" RefreshRequest="WARP1_RefreshRequest"> <asp:Button ID="Button2" runat="server" Text="Button" /></igmisc:WebAsyncRefreshPanel>