I have a radgrid where I am exporting to Excel.
The RadprogressBarArea increments just fine to 99 percent then stops. (CommandItemTemplate imagebutton click event fires the export process)
After a moment the open,save or cancel window opens for the excel export process..
I save save it or etc...
The progress area never goes away.
Someone suggested reloading the page (not an option).
I have looked at various java script options and other forum post, but I am having problems following them.
Anyone else run across this and know of a good link?
| <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/NoNav.Master" AutoEventWireup="true" |
| CodeBehind="Sites.aspx.cs" Inherits="TIPWebIT.SiteManagement.Sites" %> |
| <%@ Register TagPrefix="custom" Namespace="TIPWebCommon.FilteringTemplateColumns" |
| Assembly="TIPWebIT" %> |
| <%@ MasterType TypeName="TIPWebCommon.MasterPages.HayesMasterPage" %> |
| <%@ Register Src="SiteDetails.ascx" TagName="SiteDetails" TagPrefix="uc1" %> |
| <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> |
| </asp:Content> |
| <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> |
| <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> |
| <script type="text/javascript"> |
| function RequestStarted(ajaxManager, eventArgs) { |
| if (eventArgs.EventTarget.indexOf("ExportToExcel") != -1) { |
| eventArgs.EnableAjax = false; |
| } |
| } |
| function OpenWindow(windowName) { |
| window.radopen("", windowName); |
| } |
| function Refresh(windowName) { |
| $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest(windowName); |
| } |
| function ClosedRadWindowSiteType() { |
| Refresh("RadWindowSiteType"); |
| } |
| </script> |
| </telerik:RadCodeBlock> |
| <telerik:RadGrid ID="RadGridSites" runat="server" DataSourceID="LdsSites" GridLines="None" |
| AutoGenerateColumns="False" AllowFilteringByColumn="True" AllowPaging="True" |
| AllowSorting="True" OnItemCommand="RadGridSites_ItemCommand" OnItemCreated="RadGridSites_ItemCreated" |
| OnPreRender="RadGridSites_PreRender" OnItemDataBound="RadGridSites_ItemDataBound"> |
| <MasterTableView DataKeyNames="SiteUID" DataSourceID="LdsSites"> |
| <CommandItemTemplate> |
| <div class="HeaderLeft"> |
| <table> |
| <tr> |
| <td> |
| <asp:ImageButton runat="server" ID="ImageButtonAddRecord" ToolTip="Add Record" AlternateText="Add Record" |
| CommandName="InitInsert" /> |
| </td> |
| <td> |
| <asp:LinkButton runat="server" ID="LinkButtonAddRecord" Text="Add Record" CommandName="InitInsert" /> |
| </td> |
| <td> |
| <asp:CheckBox ID="CheckShowInactive" runat="server" EnableViewState="true" AutoPostBack="True" |
| OnCheckedChanged="CheckShowInactive_CheckedChanged" /> |
| </td> |
| <td> |
| <asp:LinkButton ID="LinkButtonShowInactive" runat="server" Text="Show Inactive" OnClick="CheckShowInactive_CheckedChanged" /> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="HeaderRight"> |
| <table> |
| <tr> |
| <td> |
| <asp:ImageButton ID="ExportToExcel" runat="server" OnClick="ExportClick" CommandName="ExportToExcel" CssClass="rgExpXLS"/> |
| </td> |
| <td> |
| <asp:ImageButton runat="server" ID="ImageButtonRefresh" ToolTip="Refresh" AlternateText="Refresh" |
| CommandName="RebindGrid" /> |
| </td> |
| <td> |
| <asp:LinkButton runat="server" ID="LinkButtonRefresh" Text="Refresh" CommandName="RebindGrid" /> |
| </td> |
| </tr> |
| </table> |
| </div> |
| </CommandItemTemplate> |
| <NestedViewTemplate> |
| <asp:Panel ID="PanelNestedView" runat="server" CssClass="EditFormTabs"> |
| <telerik:RadTabStrip runat="server" ID="TabStip1" MultiPageID="Multipage1" SelectedIndex="0"> |
| <Tabs> |
| <telerik:RadTab runat="server" Text="Site Details"> |
| </telerik:RadTab> |
| </Tabs> |
| </telerik:RadTabStrip> |
| <telerik:RadMultiPage runat="server" ID="Multipage1" SelectedIndex="0" RenderSelectedPageOnly="false"> |
| <telerik:RadPageView runat="server" ID="PageView1"> |
| <uc1:SiteDetails ID="SiteDetails1" runat="server" /> |
| </telerik:RadPageView> |
| </telerik:RadMultiPage> |
| </asp:Panel> |
| </NestedViewTemplate> |
| <EditFormSettings UserControlName="SiteDetails.ascx" EditFormType="WebUserControl"> |
| <EditColumn UniqueName="EditCommandColumn1"> |
| </EditColumn> |
| </EditFormSettings> |
| <ExpandCollapseColumn Visible="True"> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> |
| <ItemStyle HorizontalAlign="Center" /> |
| </telerik:GridEditCommandColumn> |
| <telerik:GridTemplateColumn AutoPostBackOnFilter="True" DataField="SiteID" HeaderText="Site ID" |
| SortExpression="SiteID" UniqueName="SiteID" CurrentFilterFunction="StartsWith" |
| ShowFilterIcon="False"> |
| <ItemTemplate> |
| <asp:Label ID="SiteIDLabel" runat="server" Text='<%# Eval("SiteID") %>'></asp:Label> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="SiteName" AutoPostBackOnFilter="true" HeaderText="Site Name" |
| SortExpression="SiteName" UniqueName="SiteName" ShowFilterIcon="False"> |
| <ItemTemplate> |
| <asp:Label ID="SiteNameLabel" runat="server" Text='<%# Eval("SiteName") %>'></asp:Label> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Contact" HeaderText="Contact" SortExpression="Contact" |
| UniqueName="Contact" AutoPostBackOnFilter="true" CurrentFilterFunction="StartsWith" |
| ShowFilterIcon="False"> |
| <ItemTemplate> |
| <asp:Label ID="ContactLabel" runat="server" Text='<%# Eval("Contact") %>'></asp:Label> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Phone" HeaderText="Phone" SortExpression="Phone" |
| UniqueName="Phone" Visible="true" AutoPostBackOnFilter="true" EditFormColumnIndex="1" |
| ShowFilterIcon="False"> |
| <ItemTemplate> |
| <asp:Label ID="PhoneLabel" runat="server" Text='<%# Eval("Phone") %>'></asp:Label> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Email" HeaderText="Email" SortExpression="Email" |
| UniqueName="Email" Visible="False" AutoPostBackOnFilter="true" EditFormColumnIndex="1" |
| ShowFilterIcon="False"> |
| <ItemTemplate> |
| <asp:Label ID="EmailLabel" runat="server" Text='<%# Eval("Email") %>'></asp:Label> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <custom:FilteringColumn UniqueName="Name" SortExpression="Name" DataField="Name" |
| TableName="LdsSiteTypes" HeaderText="Site Type" ShowFilterIcon="false"> |
| <ItemTemplate> |
| <asp:Label ID="SiteTypeNameLabel3" runat="server" Text='<%# Eval("Name") %>'></asp:Label> |
| </ItemTemplate> |
| </custom:FilteringColumn> |
| <custom:FilteringColumn UniqueName="RegionName" SortExpression="RegionName" DataField="RegionName" |
| TableName="LdsRegions" HeaderText="Region" ShowFilterIcon="false"> |
| <ItemTemplate> |
| <asp:Label ID="RegionNameLabel3" runat="server" Text='<%# Eval("RegionName") %>'></asp:Label> |
| </ItemTemplate> |
| </custom:FilteringColumn> |
| <telerik:GridButtonColumn UniqueName="TransferColumn" HeaderText="Transfer" CommandName="Transfer" |
| ButtonType="ImageButton" Text="Transfer" ImageUrl="~/Images/Transfer.gif"> |
| <ItemStyle HorizontalAlign="Center" /> |
| </telerik:GridButtonColumn> |
| </Columns> |
| </MasterTableView> |
| </telerik:RadGrid> |
| <telerik:RadProgressManager ID="RadProgressManager1" runat="server" /> |
| <telerik:RadProgressArea ID="RadProgressArea1" Runat="server" |
| CssClass="Progress" DisplayCancelButton="True" Skin="WebBlue" > |
| <Localization Uploaded="Uploaded"></Localization> |
| </telerik:RadProgressArea> |
| <br /> |
| <telerik:RadWindowManager ID="RadWindowManager1" runat="server"> |
| <Windows> |
| <telerik:RadWindow ID="RadWindowSiteType" runat="server" Behavior="Resize, Close" |
| InitialBehavior="None" Modal="True" NavigateUrl="SiteTypes.aspx" Title="Edit Site Types" |
| OnClientClose="ClosedRadWindowSiteType"> |
| </telerik:RadWindow> |
| </Windows> |
| </telerik:RadWindowManager> |
| <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"> |
| </telerik:RadAjaxLoadingPanel> |
| <telerik:RadAjaxManager runat="server" ID="RadAjaxManager1" OnAjaxRequest="RadAjaxManager1_AjaxRequest" |
| ClientEvents-OnRequestStart="RequestStarted"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGridSites" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="RadGridSites"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGridSites" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <asp:HiddenField ID="HiddenFieldShowInactive" runat="server" Value="False" /> |
| <asp:LinqDataSource ID="LdsSites" runat="server" ContextTypeName="TIPWebITLibrary.DAL.TIPWebITDataContext" |
| TableName="VTechSites" Where="Active != @Active"> |
| <WhereParameters> |
| <asp:ControlParameter ControlID="HiddenFieldShowInactive" DefaultValue="False" Name="Active" |
| PropertyName="Value" Type="Boolean" /> |
| </WhereParameters> |
| </asp:LinqDataSource> |
| <asp:LinqDataSource ID="LdsSiteTypes" runat="server" ContextTypeName="TIPWebITLibrary.DAL.TIPWebITDataContext" |
| Select="new (Name, Description, SiteTypeUID)" TableName="tblTechSiteTypes" OrderBy="Name"> |
| </asp:LinqDataSource> |
| <asp:LinqDataSource ID="LdsRegions" runat="server" ContextTypeName="TIPWebITLibrary.DAL.TIPWebITDataContext" |
| Select="new (RegionName, RegionDesc, RegionID)" TableName="tblRegions" Where="RegionID > 0" |
| OrderBy="RegionName"> |
| </asp:LinqDataSource> |
| </asp:Content> |
| using System; |
| using System.Globalization; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using Telerik.Web.UI; |
| namespace TIPWebIT.SiteManagement |
| { |
| public partial class Sites : System.Web.UI.Page |
| { |
| protected void Page_Unload(object sender, EventArgs e) |
| { |
| if (Session["rcbRegionValue"] != null) |
| { |
| Session.Remove("rcbRegionValue"); |
| } |
| } |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| if (!Page.IsPostBack) |
| { |
| Master.HeaderImagePath = "~/Images/user.gif"; |
| Master.HeaderText = "Site Management"; |
| } |
| TIPWebITLibrary.BLL.UserManagement.User oUser = null; |
| oUser = this.Master.SessionUser; |
| if (oUser.UserRoleUID == 2) |
| { |
| ((GridEditCommandColumn)RadGridSites.MasterTableView.Columns.FindByUniqueName("EditCommandColumn")).EditImageUrl = "~/App_Themes/" + Page.Theme + "/Grid/Edit.gif"; |
| } |
| else |
| { |
| ((GridEditCommandColumn)RadGridSites.MasterTableView.Columns.FindByUniqueName("EditCommandColumn")).Visible = false; |
| } |
| RadProgressArea1.Localization.Uploaded = "Total Progress"; |
| RadProgressArea1.Localization.UploadedFiles = "Progress"; |
| RadProgressArea1.Localization.CurrentFileName = "Custom progress in action: "; |
| } |
| protected void RadGridSites_ItemCreated(object sender, GridItemEventArgs e) |
| { |
| if (e.Item is GridCommandItem) |
| { |
| TIPWebITLibrary.BLL.UserManagement.User oUser = null; |
| oUser = this.Master.SessionUser; |
| if (oUser.UserRoleUID == 2) |
| { |
| ((ImageButton)e.Item.FindControl("ImageButtonAddRecord")).ImageUrl = "~/App_Themes/" + Page.Theme + "/Grid/AddRecord.gif"; |
| } |
| else |
| { |
| ((ImageButton)e.Item.FindControl("ImageButtonAddRecord")).Visible = false; |
| ((LinkButton)e.Item.FindControl("LinkButtonAddRecord")).Visible = false; |
| } |
| ((ImageButton)e.Item.FindControl("ImageButtonRefresh")).ImageUrl = "~/App_Themes/" + Page.Theme + "/Grid/Refresh.gif"; |
| if (this.HiddenFieldShowInactive.Value == "True") |
| { |
| ((CheckBox)e.Item.FindControl("CheckShowInactive")).Checked = true; |
| } |
| } |
| //RadProgressContext context = RadProgressContext.Current; |
| //if (e.Item.ItemIndex > 0) |
| //{ |
| // context.PrimaryPercent = e.Item.ItemIndex.ToString(); |
| // context.SecondaryValue = e.Item.ItemIndex.ToString(); |
| // context.CurrentOperationText = "Creating items..."; |
| //} |
| } |
| protected void RadGridSites_ItemCommand(object source, GridCommandEventArgs e) |
| { |
| if (ViewState["CheckStatus"] != null) |
| { |
| if (Convert.ToBoolean(ViewState["CheckStatus"], CultureInfo.InvariantCulture)) |
| { |
| this.HiddenFieldShowInactive.Value = "True"; |
| } |
| else |
| { |
| this.HiddenFieldShowInactive.Value = "False"; |
| } |
| } |
| GridDataItem selectedItem = null; |
| switch (e.CommandName) |
| { |
| case "Update": |
| case "PerformInsert": |
| e.Canceled = true; |
| break; |
| case "RebindGrid": |
| this.RadGridSites.MasterTableView.FilterExpression = string.Empty; |
| foreach (GridColumn column in RadGridSites.MasterTableView.Columns) |
| { |
| column.CurrentFilterValue = string.Empty; |
| Session.Remove("rcbRegionValue"); |
| } |
| foreach (GridDataItem item in this.RadGridSites.Items) |
| { |
| item.Expanded = false; |
| } |
| this.RadGridSites.MasterTableView.ClearEditItems(); |
| break; |
| case "Edit": |
| this.RadGridSites.MasterTableView.IsItemInserted = false; |
| break; |
| case "InitInsert": |
| this.RadGridSites.MasterTableView.ClearEditItems(); |
| break; |
| case "Filter": |
| foreach (GridDataItem item in this.RadGridSites.Items) |
| { |
| item.Expanded = false; |
| } |
| this.RadGridSites.MasterTableView.ClearEditItems(); |
| break; |
| case "ExpandCollapse": |
| selectedItem = (GridDataItem)e.Item; |
| if (selectedItem.Expanded) |
| { |
| //Collapsing |
| selectedItem.Selected = false; |
| } |
| else |
| { |
| //Expanding |
| foreach (GridDataItem item in this.RadGridSites.Items) |
| { |
| item.Expanded = false; |
| } |
| this.RadGridSites.MasterTableView.ClearEditItems(); |
| this.RadGridSites.MasterTableView.ClearSelectedItems(); |
| selectedItem.Selected = true; |
| } |
| break; |
| case "RowClick": |
| selectedItem = (GridDataItem)e.Item; |
| if (selectedItem.Expanded) |
| { |
| selectedItem.Selected = false; |
| selectedItem.Expanded = false; |
| } |
| else |
| { |
| foreach (GridDataItem item in this.RadGridSites.Items) |
| { |
| item.Expanded = false; |
| } |
| this.RadGridSites.MasterTableView.ClearEditItems(); |
| this.RadGridSites.MasterTableView.ClearSelectedItems(); |
| selectedItem.Selected = true; |
| selectedItem.Expanded = true; |
| } |
| break; |
| } |
| } |
| protected void CheckShowInactive_CheckedChanged(object sender, EventArgs e) |
| { |
| CheckBox checkStatus; |
| LinkButton linkButtonSender = sender as LinkButton; |
| if (linkButtonSender != null) |
| { |
| checkStatus = (CheckBox)linkButtonSender.Parent.FindControl("CheckShowInactive"); |
| if (checkStatus.Checked) |
| { |
| checkStatus.Checked = false; |
| } |
| else |
| { |
| checkStatus.Checked = true; |
| } |
| } |
| else |
| { |
| checkStatus = (CheckBox)sender; |
| } |
| if (checkStatus.Checked) |
| { |
| ViewState["CheckStatus"] = "true"; |
| this.HiddenFieldShowInactive.Value = "True"; |
| } |
| else |
| { |
| ViewState["CheckStatus"] = "false"; |
| this.HiddenFieldShowInactive.Value = "False"; |
| } |
| RadGridSites.MasterTableView.ClearEditItems(); |
| } |
| protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) |
| { |
| if (e.Argument == "RadWindowSiteType") |
| { |
| if (RadGridSites.MasterTableView.IsItemInserted == true) |
| { |
| SiteDetails mySiteDetails = (SiteDetails)RadGridSites.MasterTableView.GetInsertItem().FindControl(GridEditFormItem.EditFormUserControlID); |
| if (e.Argument == "RadWindowSiteType") |
| { |
| RadComboBox ddlSiteTypes = (RadComboBox)mySiteDetails.FindControl("SiteTypeUIDDropDownList"); |
| ddlSiteTypes.Items.Clear(); |
| ddlSiteTypes.Items.Add(new RadComboBoxItem("", "")); |
| ddlSiteTypes.DataBind(); |
| } |
| } |
| else |
| { |
| RadGridSites.MasterTableView.Rebind(); |
| } |
| } |
| } |
| protected void RadGridSites_PreRender(object sender, EventArgs e) |
| { |
| if (ViewState["CheckStatus"] != null) |
| { |
| GridItem commandItem = RadGridSites.MasterTableView.GetItems(GridItemType.CommandItem)[0]; |
| CheckBox checkBox = (CheckBox)commandItem.FindControl("CheckShowInactive"); |
| if (ViewState["CheckStatus"].ToString() == "true") |
| { |
| checkBox.Checked = true; |
| this.HiddenFieldShowInactive.Value = "True"; |
| } |
| else |
| { |
| checkBox.Checked = false; |
| this.HiddenFieldShowInactive.Value = "False"; |
| } |
| } |
| ((GridTemplateColumn)this.RadGridSites.MasterTableView.Columns.FindByUniqueName("SiteID")).CurrentFilterFunction = GridKnownFunction.StartsWith; |
| ((GridTemplateColumn)this.RadGridSites.MasterTableView.Columns.FindByUniqueName("Contact")).CurrentFilterFunction = GridKnownFunction.StartsWith; |
| } |
| protected void RadGridSites_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| if (e.Item is GridPagerItem) |
| { |
| RadComboBox PageSizeCombo = (RadComboBox)e.Item.FindControl("PageSizeComboBox"); |
| PageSizeCombo.Items.Clear(); |
| PageSizeCombo.Items.Add(new RadComboBoxItem("20")); |
| PageSizeCombo.FindItemByText("20").Attributes.Add("ownerTableViewId", RadGridSites.MasterTableView.ClientID); |
| PageSizeCombo.Items.Add(new RadComboBoxItem("50")); |
| PageSizeCombo.FindItemByText("50").Attributes.Add("ownerTableViewId", RadGridSites.MasterTableView.ClientID); |
| PageSizeCombo.Items.Add(new RadComboBoxItem("100")); |
| PageSizeCombo.FindItemByText("100").Attributes.Add("ownerTableViewId", RadGridSites.MasterTableView.ClientID); |
| PageSizeCombo.Items.Add(new RadComboBoxItem("250")); |
| PageSizeCombo.FindItemByText("250").Attributes.Add("ownerTableViewId", RadGridSites.MasterTableView.ClientID); |
| PageSizeCombo.Items.Add(new RadComboBoxItem("300")); |
| PageSizeCombo.FindItemByText("300").Attributes.Add("ownerTableViewId", RadGridSites.MasterTableView.ClientID); |
| PageSizeCombo.FindItemByText(e.Item.OwnerTableView.PageSize.ToString(CultureInfo.InvariantCulture)).Selected = true; |
| } |
| //RadProgressContext context = RadProgressContext.Current; |
| //if (e.Item.ItemIndex > 0) |
| //{ |
| // context.SecondaryValue = e.Item.ItemIndex.ToString(); |
| // context.CurrentOperationText = "Creating items..."; |
| //} |
| } |
| protected void ExportClick(object sender, EventArgs e) |
| { |
| this.RadGridSites.ExportSettings.OpenInNewWindow = true; |
| this.RadGridSites.ExportSettings.ExportOnlyData = true; |
| this.RadGridSites.ExportSettings.IgnorePaging = true; |
| UpdateProgressContext(); |
| this.RadGridSites.MasterTableView.ExportToExcel(); |
| this.RadProgressArea1.Visible = false; |
| } |
| //protected override void OnPreRenderComplete(EventArgs e) |
| //{ |
| // //http://www.telerik.com/community/forums/aspnet-ajax/grid/display-loading-panel-during-export.aspx |
| // //http://demos.telerik.com/aspnet-ajax/upload/examples/customprogress/defaultcs.aspx?RadUrid=17ff8ea5-9104-4925-9c26-54b91de34242 |
| // //if (this.RadGridSites.MasterTableView.Items.Count > 100) |
| // //{ |
| // RadProgressContext context = RadProgressContext.Current; |
| // context.CurrentOperationText = "Sending to client..."; |
| // context["ProgressDone"] = true; |
| // context.OperationComplete = true; |
| // base.OnPreRenderComplete(e); |
| // //} |
| //} |
| private void UpdateProgressContext() |
| { |
| const int total = 100; |
| RadProgressContext progress = RadProgressContext.Current; |
| progress.Speed = "N/A"; |
| for (int i = 0; i < total; i++) |
| { |
| progress.PrimaryTotal = 1; |
| progress.PrimaryValue = 1; |
| progress.PrimaryPercent = 100; |
| progress.SecondaryTotal = total; |
| progress.SecondaryValue = i; |
| progress.SecondaryPercent = i; |
| progress.CurrentOperationText = "Step " + i.ToString(); |
| if (!Response.IsClientConnected) |
| { |
| //Cancel button was clicked or the browser was closed, so stop processing |
| break; |
| } |
| progress.TimeEstimated = (total - i) * 100; |
| //Stall the current thread for 0.1 seconds |
| System.Threading.Thread.Sleep(100); |
| } |
| } |
| } |
| } |