Completed
Last Updated: 08 Sep 2026 13:05 by ADMIN

Summary When a RadPane has Scrolling="Y" (or X/Both) and also has BorderWidth, BorderStyle, BorderColor set (either directly on the pane or via the parent RadSplitter's PanesBorderSize), the pane's inner scrollbar does not render/work correctly. The space reserved for the scrollbar remains in the layout, but the scrollbar itself is missing or non-functional, effectively making the pane's content unscrollable.

Steps to Reproduce

  1. Create a RadSplitter with a RadPane that has Scrolling="Y" and BorderWidth="3" BorderStyle="solid" BorderColor="blue" (or just rely on PanesBorderSize).
  2. Add enough content to the pane so it overflows vertically.
  3. Load the page in Chrome (reproduced on Chrome 152).
  4. Observe: only the outer document scrollbar appears; the pane's own scrollbar is missing or the reserved scrollbar gutter space is empty, and the content cannot be scrolled within the pane.

Expected behavior The pane's scrollbar should render correctly and remain functional regardless of BorderWidth/BorderStyle/BorderColor/PanesBorderSize settings.

Actual behavior Scrollbar space is reserved but the scrollbar is missing/non-functional when a border is applied to the pane.

Completed
Last Updated: 02 Sep 2026 14:59 by ADMIN
Release 2026 Q3 SP1
Created by: paavon
Comments: 1
Category: UI for ASP.NET AJAX
Type: Bug Report
0

Telerik UI for ASP.NTE AJAX nuget package adds ChartImage handler configs to Web.Config (system.web/httpHandlers and system.webServer/handlers) even though it does not support RadChart any more.

Also it seems to mess system.webServer/handlers configuration by adding remove actions for other Telerik handlers AFTER add actions.

system.web/httpHandlers before:

    <httpHandlers>
      <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" />
      <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" />
    </httpHandlers>

system.web/httpHandlers after:

    <httpHandlers>
      <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" />
      <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" />
    <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false" /></httpHandlers>

system.webServer/handlers before:

    <handlers>
      <add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" />
    </handlers>

system.webServer/handlers after:

    <handlers>
      <add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" />
    <remove name="ChartImage_axd" /><remove name="Telerik_Web_UI_SpellCheckHandler_axd" /><remove name="Telerik_Web_UI_DialogHandler_aspx" /><remove name="Telerik_RadUploadProgressHandler_ashx" /><remove name="Telerik_Web_UI_WebResource_axd" /><add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode" /></handlers>

 

Completed
Last Updated: 31 Aug 2026 07:22 by ADMIN
Release 2026 Q3 SP1

Regression introduced in: 2025.4.1111

When RadEditor is in HTML mode, calling get_html() without parameters modifies self-closing tags in the returned content.

According to the documented API behavior, the RadEditor client filters should modify the returned content only when the isFiltered argument is set to true. However, the content is currently passed through browser DOM serialization even when filtering is not requested. This normalizes HTML void elements and removes the XHTML self-closing slash.

Steps to reproduce

  1. Add a RadEditor to a page.
  2. Switch the editor to HTML mode.
  3. Enter the following content:
<img alt="" src="image.png" />
  1. Call editor.get_html() or editor.get_html(false).

Actual result

The returned markup is modified and the self-closing slash is removed:

<img alt="" src="image.png">

Expected result

When filtering is not requested, the content entered in HTML mode should be returned without filter-related DOM serialization:

<img alt="" src="image.png" />

Calling editor.get_html(true) may modify the returned content according to the enabled RadEditor client filters.

Impact

Applications that store, compare, validate, or further process XHTML-compatible markup may receive content different from the source entered by the user. This can affect integrations that rely on self-closing tag syntax.

Completed
Last Updated: 29 Jun 2026 11:31 by ADMIN
Release 2026 Q2 SP1

I'm using a RadTab and one of the RadPageViews starts with an RadAsyncUpload-Control. When I use arrow keys to select this tab and try to use the Tab-Key to focus the next element (the RadAsyncUpload in this case) nothing happens. If any other control (like a textbox) is placed above my upload control there is no problem focusing it.

You can see this in the attached Demoproject when using arrow keys to select to RpvUpload.

Completed
Last Updated: 04 Jun 2026 12:28 by ADMIN
Release 2026 Q2 SP1

When attempting to view the page in design view, here's what it looks like:

 

Here is the markup:

    <telerik:RadPanelBar ID="RadPanelBar1" runat="server">
        <Items>
            <telerik:RadPanelItem runat="server" Expanded="True" PreventCollapse="true">
                <HeaderTemplate>
                    <div ID="content-header">
                        Auditing Report | GPO Changes For User
                    </div>
                </HeaderTemplate>
                <ContentTemplate>
                    <div ID="content-body">
                        <telerik:ReportViewer ID="ReportViewer1" runat="server" ReportBookID="" Width="100%" Height="12in">
                        </telerik:ReportViewer>
                    </div>
                </ContentTemplate>
            </telerik:RadPanelItem>
        </Items>
    </telerik:RadPanelBar>

Completed
Last Updated: 12 May 2026 18:17 by ADMIN
Release 2026 Q2

Dear staff I know this post

https://www.telerik.com/support/code-library/detecting-changes-to-the-radeditor

But in any case the component RadEditor have the method 'OnTextChanged' in the client side.

Probably, id it doesn't works, is better to remove it.

 

Thanks

Renato

Completed
Last Updated: 24 Apr 2026 12:28 by ADMIN
Release 2026 Q2

The problem is that when you click the buttons, the RadDateRangePicker is filled with the start of 2025-06-01 and the end of 2025-06-30. Then, when you click the button again, a change should occur in the RadDateRangePicker: start of 2025-07-01 and end of 2025-07-31.


1 step => correct

2 step => incorrect


Result
The first time you click the button, it returns the start date to 06/01/2025 and the end date to 06/30/2025 (this is correct). Clicking it again returns the start date to 06/30/2025 and the end date to 07/31/2025 (this is incorrect).

Work around
 - Local page
js code fixed 

const datepicker = $find('<%= radDateRangePicker2.ClientID %>');

datepicker.set_rangeSelectionStartDate(null);
datepicker.set_rangeSelectionEndDate(null);


- Global fixed All controls
C# in extension control 

public bool EnableDateResetting
{
    get => ViewState["EnableDateResetting"] as bool? ?? false;
    set => ViewState["EnableDateResetting"] = value;
}

public eDateRangePicker() : base()
{
	Load += EDateRangePicker_Load;
}

private void EDateRangePicker_Load(object sender, EventArgs e)
{
    if (EnableDateResetting)
    {
        RegisterDateResettingScript();
    }
}

private void RegisterDateResettingScript()
{
	string script = $@"
		Sys.Application.add_load(function() {{
			const picker = $find('{ClientID}');

			if (picker) {{
				const origStart = picker.set_rangeSelectionStartDate;
				const origEnd = picker.set_rangeSelectionEndDate;

				picker.set_rangeSelectionStartDate = function(date) {{
					if (date !== null && !this._isResetting) {{
						const currentStart = this.get_rangeSelectionStartDate();
						const currentEnd = this.get_rangeSelectionEndDate();
                
						if (currentStart || currentEnd) {{
							this._isResetting = true;

							origStart.call(this, null);
							origEnd.call(this, null);

							this._isResetting = false;
						}}
					}}

					return origStart.call(this, date);
				}};

				picker.set_rangeSelectionEndDate = function(date) {{

					return origEnd.call(this, date);
				}};
			}}
		}});
	";

    ScriptManager.RegisterStartupScript(this, GetType(), $"DateResetting_{ClientID}", script, true);
}

Completed
Last Updated: 22 Apr 2026 10:05 by ADMIN
Release 2026 Q2
Simple reproducible is attached to illustrate the problem.

A workaround may be replacing RadButtons that invokes such postbacks with regular buttons and using a form decorator

Alternatively, you can simply disable the handler URL encryption

You can also put the following in the global.asax file to prevent the version from rendering on the page markup
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
			System.Web.HttpContext.Current.Items["_!TelerikVersionStampRendered"] = true;
        }
or you can add the same line in a global Page_Load handler (e.g., in a base page class or in the master page your project uses)
Completed
Last Updated: 25 Feb 2026 08:05 by ADMIN
Hello Telerik Team,

I'm implementing HeaderContext filtering with checkbox lists on a RadGrid in a legacy ASP.NET WebForms application. 

Current Setup:
- FilterType="HeaderContext"
- FilterCheckListEnableLoadOnDemand="true"
- OnFilterCheckListItemsRequested event populates checkboxes from session data

Issue:
Users experience 500-2000ms delay when opening filter menus (AJAX callback to server). 
In our production environment with slow network and high concurrent users, this creates 
poor user experience.

Questions:
1. Is there a way to pre-populate checkbox lists during grid initialization 
   (avoiding AJAX callback)?
2. Can we use OnItemCreated to populate checkbox lists with 
   FilterCheckListEnableLoadOnDemand="false"? If so, what's the correct approach?
3. Is there a client-side caching mechanism for checkbox list items?
4. What's the recommended pattern for large datasets (1000+ rows) with multiple 
   filterable columns?

Environment:
- Telerik.Web.UI version: v4.0.30319
- .NET Framework: 4.8
- Browser: Chrome, IE11
- Grid has ~10 columns with 5 using checkbox filters

Any guidance on performance optimization would be greatly appreciated!

Thank you,
Anurag pandey
Completed
Last Updated: 15 Jan 2026 16:05 by ADMIN
Release 2025 Q4 SP2
Created by: Randall
Comments: 0
Category: UI for ASP.NET AJAX
Type: Feature Request
0
Requesting Keyboard navigation be implemented for the Org Chart control to support 508 Accessibility.
Completed
Last Updated: 04 Dec 2025 12:51 by ADMIN

 

Attached my grid code. Most columns are removed for readability

    <telerik:RadGrid ID="grdChanges" runat="server" Width="1140" 
        skin="WebBlue" style="margin-top:13px; margin-right:13px; outline: 0 !important;"
        ShowFooter="false" AllowSorting="false">      
    <ClientSettings>
            <Scrolling AllowScroll="True" ScrollHeight="487px" UseStaticHeaders="true" />
    </ClientSettings>                      
    <MasterTableView GroupLoadMode="Client" AutoGenerateColumns="False" HeaderStyle-Font-Bold="true"> 
        <HeaderStyle CssClass="InnerHeaderStyle"/>
        <ItemStyle CssClass="InnerItemStyle"/>
        <AlternatingItemStyle CssClass="InnerAlernatingItemStyle"/>
        <CommandItemStyle CssClass="CommandHeaderStyle" />

        <ColumnGroups>
           <telerik:GridColumnGroup Name="Passenger Trips" HeaderText="Passenger Trips" HeaderStyle-HorizontalAlign="Center"/>           
           <telerik:GridColumnGroup Name="Ton Trips" HeaderText="Ton Trips" HeaderStyle-HorizontalAlign="Center"/>                                                         
           <telerik:GridColumnGroup Name="Miles Per Trip" HeaderText="Miles Per Trip" HeaderStyle-HorizontalAlign="Center"/>           
           <telerik:GridColumnGroup Name="Miles Per Hour" HeaderText="Miles Per Hour" HeaderStyle-HorizontalAlign="Center"/>                          
        </ColumnGroups> 

        <Columns> 

            <telerik:GridNumericColumn DataField="MilesPerHour_Proj" HeaderText="Project"  
                                       ColumnGroupName ="Miles Per Hour"
                                       DataFormatString="{0:N1}" DecimalDigits="0"
                                       HeaderStyle-HorizontalAlign="Center" 
                                       HeaderStyle-Width="60px" ItemStyle-BackColor="White"
                                       ItemStyle-HorizontalAlign="Right" AllowRounding="true" />

            <telerik:GridNumericColumn DataField="MilesPerHour_Base" HeaderText="Base"  
                                       ColumnGroupName ="Miles Per Hour"
                                       DataFormatString="{0:N1}" DecimalDigits="0"
                                       HeaderStyle-HorizontalAlign="Center" 
                                       HeaderStyle-Width="60px" ItemStyle-BackColor="White"
                                       ItemStyle-HorizontalAlign="Right" AllowRounding="true" />                            

            <telerik:GridNumericColumn DataField="MilesPerHourChange" HeaderText="Change"  
                                       ColumnGroupName ="Miles Per Hour"
                                       DataFormatString="{0:N1}" DecimalDigits="0"
                                       HeaderStyle-HorizontalAlign="Center" 
                                       HeaderStyle-Width="60px" ItemStyle-BackColor="White"
                                       ItemStyle-HorizontalAlign="Right" AllowRounding="true" />
        </Columns> 

        <NoRecordsTemplate> 
            <div style="padding: 5px"> 
                No records available. 
            </div> 
        </NoRecordsTemplate> 

    </MasterTableView> 
    <FilterMenu EnableTheming="True"> 
        <CollapseAnimation Duration="200" Type="OutQuint" /> 
    </FilterMenu> 
</telerik:RadGrid> 

                
Completed
Last Updated: 04 Dec 2025 12:50 by ADMIN

 

ChatGPT recommended "Turn off Telerik’s “old” ARIA settings (they are overly strict and often invalid):"

i removed it and it worked. WTH?

What i supposed to do now? I added these settings in all our products

 <telerik:RadGrid ID="grdImpacts" runat="server" EnableAriaSupport="true" 
              style="margin-top:10px;margin-right:25px;margin-left:15px;"
              ShowStatusBar="true" AutoGenerateColumns="False"
              Width="650px" skin="WebBlue" 
              AllowSorting="False" AllowMultiRowSelection="False" AllowPaging="false"
              OnNeedDataSource="grdMain_OnNeedDataSource">

 

Completed
Last Updated: 05 Nov 2025 13:56 by ADMIN
Release 2025 Q4 (Nov)
Created by: Alex
Comments: 0
Category: UI for ASP.NET AJAX
Type: Bug Report
1

When using client-side code to filter my Grid, the "BETWEEN" filter does not work well when filtering DateTime values where the time is after 12:00 AM.

i.e., filtering the dates between 9/11/2025 and 9/12/2025 does not include 9/12/2025 at 12:01 AM or any date where the time is after 12:00 AM.

Additionally, when passing datetime values to the filter function, the time component is dropped afterward.

var filter = "9/11/2025,12:00:00,AM 9/12/2025,11:59:59,PM"
tableView.filter(columnName, filter, "Between");

 

<FilterTemplate>
                        <telerik:RadLabel runat="server" AssociatedControlID="FromOrderDatePicker" Text="From"></telerik:RadLabel>
                        <telerik:RadDatePicker RenderMode="Lightweight" ID="FromOrderDatePicker" runat="server" Width="140px" ClientEvents-OnDateSelected="FromDateSelected"
                            MinDate="07-04-1996" MaxDate="05-06-1998" FocusedDate="07-04-1996" DbSelectedDate='<%# startDate %>' />
                        <telerik:RadLabel runat="server" AssociatedControlID="ToOrderDatePicker" Text="to" Style="padding-left: 5px;"></telerik:RadLabel>
                        <telerik:RadDatePicker RenderMode="Lightweight" ID="ToOrderDatePicker" runat="server" Width="140px" ClientEvents-OnDateSelected="ToDateSelected"
                            MinDate="07-04-1996" MaxDate="05-06-1998" FocusedDate="05-06-1998" DbSelectedDate='<%# endDate %>' />
                            <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
                                <script type="text/javascript">
                                    function FromDateSelected(sender, args) {
                                        var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
                                    var ToPicker = $find('<%# ((GridItem)Container).FindControl("ToOrderDatePicker").ClientID %>');
 
                                    var fromDate = FormatSelectedDate(sender) + ",12:00:00,AM";
                                    var toDate = FormatSelectedDate(ToPicker) + ",11:59:59,PM";

                                    tableView.filter("OrderDate", fromDate + " " + toDate, "Between");
 
                                }
                                function ToDateSelected(sender, args) {
                                    var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
                                    var FromPicker = $find('<%# ((GridItem)Container).FindControl("FromOrderDatePicker").ClientID %>');
 
                                    var fromDate = FormatSelectedDate(FromPicker);
                                    var toDate = FormatSelectedDate(sender);
 
                                    tableView.filter("OrderDate", fromDate + " " + toDate, "Between");
                                }
                                function FormatSelectedDate(picker) {
                                    var date = picker.get_selectedDate();
                                    var dateInput = picker.get_dateInput();
                                    var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());
 
                                    return formattedDate;
                                }
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>

 

For more details, you can take Ticket 1702122 as a reference.

Completed
Last Updated: 27 Oct 2025 12:44 by ADMIN
Release 2025 Q4 (Nov)
Created by: Alex
Comments: 1
Category: UI for ASP.NET AJAX
Type: Bug Report
0

I recently upgraded the Telerik version from 2025.1.416 to 2025.3.825, and started getting this NullReferenceException during debugging.

I noticed I get the error when debugging RadGrid with the Skin property.

 

Completed
Last Updated: 23 Oct 2025 13:41 by ADMIN
Release 2025 Q4 (Nov)

The Box Plot Chart throws the following errors when used:

RadHtmlChart.js:1 Uncaught ReferenceError: series is not defined
Uncaught (in promise) ReferenceError: series is not defined

Completed
Last Updated: 22 Aug 2025 14:12 by ADMIN
Release 2025 Q3 SP1
Created by: Amardeep
Comments: 1
Category: UI for ASP.NET AJAX
Type: Bug Report
0
My Web Forms application is using a valid (non-expired) telerik-license.txt file / Telerik Licensing Evidence attribute (Script Key). However, the Telerik AJAX controls still display the invalid license watermark along with a yellow banner that appears empty.
Completed
Last Updated: 05 Aug 2025 11:10 by ADMIN
I am reaching out in regards of an update we need to resolve a vulnerability in our system. I am not aware if my company has a license already but I was informed that we could get the hotfix by opening a ticket. Please let me know if there is another method to get the hotfix.

Contact email: carlos.diaz@cenace.gob.mx
Completed
Last Updated: 04 Aug 2025 14:39 by ADMIN
Release 2025 Q3 (Aug)
Created by: Paulo
Comments: 1
Category: UI for ASP.NET AJAX
Type: Feature Request
2
I would like to see OTP Input available in the ASP.NET Ajax how in the ASP.NET MVC: https://demos.telerik.com/aspnet-mvc/otpinput
Completed
Last Updated: 01 Aug 2025 13:15 by ADMIN
Release 2025 Q3 (Aug)

Dear Telerik Support.  I found another bug related to this one below.

https://feedback.telerik.com/aspnet-ajax/1688270-uncaught-typeerror-cannot-read-properties-of-null-reading-classname?_gl=1*iuxa0l*_gcl_au*NjcwNTkzNi4xNzQ3Njc4MzQz*_ga*OTAxNzk1OTc4LjE3Mzk4MjI5NzY.*_ga_9JSNBCSF54*czE3NDgwOTkxODEkbzIxJGcxJHQxNzQ4MDk5NTIzJGo1NCRsMCRoMCRkRlJROUp0Q0RDUUZTUlZUeFlLLU9ja3RBc2UwczF3ZU55Zw..

This line of code also causes the same issue.

$find("txtYear").clear();

See attached Console debug output.

It is my opinion that a hot fix needs to be done asap!  The work around that Derek posted on May 23rd falls short of the bigger issue.  This is a serious matter and needs to be addressed immediately.

Completed
Last Updated: 01 Aug 2025 13:07 by ADMIN

Summary 

After editing an Excel `.xlsx` file using Telerik RadSpreadsheet and saving it via the default Save option, the saved file becomes corrupted. It no longer opens in RadSpreadsheet (throws an error) and shows a repair warning in Microsoft Excel. 

Reproduction Steps 

1. Upload an Excel `.xlsx` file to the `ABC` folder on the server. 

2. Load the file in RadSpreadsheet via a basic viewer page. 

3. Make any small edit (e.g., change a cell’s value). 

4. Click the built-in Save option in the RadSpreadsheet toolbar. 

5. Attempt to: 

   - Reopen the saved file in RadSpreadsheet → Error: Object reference not set to an instance of an object. 

   - Open in Excel → Warning: “We found a problem with some content in ‘filename’. Do you want us to try to recover as much as we can?” 

Files Attached 

- `Original.xlsx` — Before editing, opens fine in both RadSpreadsheet and Excel. 

- `Modified.xlsx` — After saving via RadSpreadsheet, causes errors. 

- Screenshot of: 

   - RadSpreadsheet error : 

Picture 

   - Excel repair prompt 

Picture 

Code Snippet : 

<telerik:RadSpreadsheet ID="sample" runat="server" Visible="false" style="font-size: 10px;" /> 

protected void Page_Load(object sender, EventArgs e) 

{ 

    string fileName = (string)Session["SelectedFileName"]; 

    SheetLoad(fileName); 

} 

  

private void SheetLoad(string fileName) 

{ 

    try 

    { 

        string filePath = Server.MapPath("~/ABC/" + fileName); 

        if (!File.Exists(filePath)) 

        { 

            string errorMsg = "File not found: " + filePath; 

            ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('File not found!');", true); 

            return; 

        } 

  

        // Load spreadsheet using Telerik document provider 

        sample.Provider = new SpreadsheetDocumentProvider(filePath); 

        sample.Visible = true; 

    } 

    catch (Exception ex) 

    { 

        string errorMsg = "Error opening file: " + ex.Message + " | File: " + fileName; 

        ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Error loading file!');", true); 

    } 

} 

  

**Observation:** 

  

* This only happens for **some files**, especially ones that likely contain advanced Excel features. 

* Other simpler files save and reload without any issue. 

  

**Assumption:** 

It seems the default save behavior of RadSpreadsheet is **not preserving some Excel structures**, leading to file corruption on save. 

  

 


1 2 3 4 5 6