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); |
} |
} |
} |
} |