Telerik Forums
Reporting Forum
1 answer
19 views

We are using Telerik report server version 2025Q2 with a Blazor UI, since we have upgraded when you select a parameter in the parameter list it does not shade it or do anything to indicate it has been selected. The report does run so it's really selecting the parameters but it does not reflect that. Is there a fix for this?

Thanks,

Toya

Dimitar
Telerik team
 answered on 25 Jul 2025
1 answer
23 views

I need to get the values of some fields shown on a report in a VB.NET / Winforms app, and I've used the code from here;

https://docs.telerik.com/reporting/embedding-reports/program-the-report-definition/access-report-items-programmatically

However, I'm experiencing a crash at the first step of getting the InstanceReportSource with a cast exception as per the title.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim instanceReportSource As InstanceReportSource =
                DirectCast(Me.TKReportViewer.ReportSource, InstanceReportSource) <========= Invalid Cast here
    Dim report As Telerik.Reporting.Report =
                DirectCast(instanceReportSource.ReportDocument, Telerik.Reporting.Report)

    Dim txt As Telerik.Reporting.TextBox =
                TryCast(report.Items.Find("quoteReferenceNumber", True)(0), Telerik.Reporting.TextBox)

End Sub

I can't find any other questions / answers on this - anyone have an idea what might be wrong?

Ivet
Telerik team
 answered on 18 Jul 2025
1 answer
15 views
Is it possible to implement the logic for handling the "Send" button click in the email sending window?
I want to notify the user when the email has been sent and display a loading indicator to prevent user interaction with the interface, as sending emails can sometimes take a while.
Ivet
Telerik team
 answered on 18 Jul 2025
1 answer
23 views

Hello,

I'm working on adding a custom template to our reports. I based it on the example that is given with the latest telerik reporting. Our designer would like us to get rid of the pagination (Our reports are max 2-3 pages) and move the parameters area around a bit, so I added the following template:

<template id="trv-report-viewer">
    <div class="trv-report-viewer w-100 h-100 gap-4">
        <div data-role="splitter" class="trv-parameters-splitter ">
            <div data-id="trv-parameters-area" class="trv-parameters-area w-25" data-role="telerik_ReportViewer_ParametersArea">
                <div class="d-flex flex-column pe-4">
                    <div class="d-flex align-items-center px-3">
                        <h3 class="flex-grow-1 ps-3">Report</h3>

                        <div class="trv-side-menu d-flex gap-3" data-role="telerik_ReportViewer_SideMenu">
                            <ul class="d-flex flex-row  gap-2" aria-label="ariaLabelSideMenu">
                                <li aria-label="ariaLabelMenuNavigateBackward">
                                    <a data-command="telerik_ReportViewer_historyBack" title="menuNavigateBackwardTitle" href="#" class="element_Action shadow-none bg-none pb-0">
                                        <i class="bi bi-arrow-90deg-left"></i>
                                    </a>
                                </li>
                                <li aria-label="ariaLabelMenuNavigateForward">
                                    <a data-command="telerik_ReportViewer_historyForward" title="menuNavigateForwardTitle" href="#" class="element_Action shadow-none bg-none pb-0">
                                        <i class="bi bi-arrow-90deg-right"></i>
                                    </a>
                                </li>

                                <li class="element_Action " aria-label="ariaLabelMenuRefresh">
                                    <a data-command="telerik_ReportViewer_refresh" title="ariaLabelMenuRefresh" class="element_Action shadow-none">
                                        <i class="bi bi-arrow-clockwise"></i>
                                    </a>
                                </li>
                                <li aria-label="ariaLabelMenuToggleMenu">
                                    <button
                                        title="Toggle Filter"
                                        type="button"
                                        class="element_Action shadow-none"
                                        onclick="toggleReportViewerParameters(event, this)">
                                        <i class="bi bi-sliders2-vertical"></i>
                                    </button>
                                </li>
                            </ul>
                        </div>
                    </div>

                    <div class="reportViewer_Parameters ">
                        <div class="trv-parameters-area-content" role="complementary">
                            <div class="trv-parameters-wrapper"></div>
                        </div>

                        <div class="trv-parameters-area-footer mt-3">
                            <button type="button" aria-label="ariaLabelParametersAreaPreviewButton" class="element_Button trv-parameters-area-preview-button">Preview</button>
                        </div>
                        <div class="trv-error-pane k-tooltip-validation k-widget">
                            <div class="trv-error-message"></div>
                        </div>
                        <div class="trv-parameters-area-overlay"></div>
                    </div>

                    <div class="d-flex flex-wrap gap-1 px-2 align-items-center reportViewer_exportOrPrint">
                        <select
                            name="exportFormat"
                            class="reportViewer_exportFormat flex-shrink-0"
                            onchange="changeReportExportFormat(this)">
                            <option value="PDF">Adobe (PDF) file</option>
                            <option value="CSV">CSV (comma delimited)</option>
                            <option value="XLS">Excel 97-2003</option>
                            <option value="XLSX">Excel Worksheet</option>
                            <option value="PPTX">PowerPoint Presentation</option>
                            <option value="RTF">Rich Text Format</option>
                            <option value="IMAGE">TIFF File</option>
                            <option value="MHTML">Web Archive</option>
                            <option value="DOCX">Word Document</option>
                            <option value="XPS">XPS Document</option>
                        </select>

                        <button class="element_Button reportViewer_exportButton" data-command="telerik_ReportViewer_export" data-command-parameter="pdf">Export</button>
                        <span class="is-dimmed px-1">or</span>
                        <button class="element_Button" data-command="telerik_ReportViewer_print">Print</button>
                    </div>
                </div>
            </div>

            <div class="k-splitbar k-splitbar-horizontal"></div>

            <div class="trv-content-wrapper w-75 bg-darkcloud">
                <div data-id="trv-pages-area" class="trv-pages-area border-0 p-4" data-role="telerik_ReportViewer_PagesArea" role="main" aria-label="ariaLabelPagesArea">
                    <div class='trv-page-container'>
                        <div class='trv-page-wrapper active'></div>
                    </div>

                    <div class='trv-error-pane'>
                        <div class="trv-centered k-tooltip-validation">
                            <div class='trv-error-message'></div>
                        </div>
                        <div style="clear: both;"></div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<!--PARAMETERS-->
<template id="trv-parameter">
    <div class="trv-parameter-container mt-3">
        <div class="trv-parameter-header">
            <div class="trv-parameter-title label is-dimmed ps-3"></div>
        </div>

        <div class="trv-parameter-error">
            <span class="trv-parameter-error-message"></span>
        </div>
        <div class="trv-parameter-value"></div>
    </div>
</template>

<template id="trv-parameter-editor-available-values-multiselect">
    <div class="trv-parameter-editor-available-values-multiselect">
        <div class="trv-list"></div>
        <div class="trv-parameter-actions">
            <button class="trv-select-all element_Action">parameterEditorSelectAll</button>
            <button class="trv-select-none element_Action">parameterEditorSelectNone</button>
        </div>
    </div>
</template>

<template id="trv-parameter-editor-available-values-multiselect-combo">
    <div class="trv-parameter-editor-available-values-multiselect">
        <div class="trv-combo"></div>
        <div class="trv-parameter-actions">
            <button class="trv-select-all element_Actionelement_Action">parameterEditorSelectAll</button>
            <button class="trv-select-none element_Actionelement_Action">parameterEditorSelectNone</button>
        </div>
    </div>
</template>

<template id="trv-parameter-editor-available-values">
    <div class="trv-parameter-editor-available-values">
        <div class="trv-list" id="trv-parameter-editor-singleselect-list"></div>
        <div class="trv-parameter-actions">
            <button class="trv-select-none element_Action">parameterEditorSelectNone</button>
        </div>
    </div>
</template>

<template id="trv-parameter-editor-available-values-combo">
    <div class="trv-parameter-editor-available-values">
        <div class="trv-combo" id="trv-parameter-editor-singleselect-combo"></div>
        <div class="trv-parameter-actions">
            <button class="trv-select-none element_Action">parameterEditorSelectNone</button>
        </div>
    </div>
</template>

<template id="trv-parameter-editor-datetime">
    <div class="element_DateTimePicker">
        <input type="datetime" class=" trv-parameter-editor-datetime" />
    </div>
</template>

<template id="trv-parameter-editor-text">
    <div class="element_Input">
        <input type="text" class=" trv-parameter-editor-text" />
    </div>
</template>

<template id="trv-parameter-editor-number">
    <div class="element_Input">
        <input type="number" step="any" class=" trv-parameter-editor-number" />
    </div>
</template>

<template id="trv-parameter-editor-boolean">
    <input type="checkbox" class="element_Checkbox trv-parameter-editor-boolean" />
</template>

<template id="trv-parameter-editor-multivalue">
    <div class="trv-parameter-editor-multivalue element_Textarea">
        <textarea></textarea>
    </div>
</template>

Now i can see that I got multiple pages loaded, but if I scroll, then the follow-up pages do not load.

Here is how we call the template:


<telerik:ReportViewer
    ID="html5ReportViewer" ServiceUrl="/api/reports"
    EnableAccessibility="false"
    PersistSession="false"
    ParametersAreaPosition="Left"
    TemplateUrl="~/reportTemplate/reportViewerTemplate.html"
    PageMode="ContinuousScroll"
    ScaleMode="FitPageWidth"
    runat="server">

If I remove the TemplateUrl, then everything works as expected. The extra classes I added are from Bootstrap.

 

If anyone has an idea what is wrong with my template, please let me know. I've tried replacing the whole thing with the file from C:\Program Files (x86)\Progress\Telerik Reporting 2025 Q2\Html5\ReportViewer\templates but it didn't solve the issue.

 

Thanks for your future input!

Kallol Mahata
Top achievements
Rank 1
Iron
 answered on 16 Jul 2025
1 answer
39 views

Hello Telerik Support Team,

When I execute the npm instruction below to install telerik angular report-viewer package, it results a lot of errors as shown further down. Any ideas of what I may be missing or what I may be doing wrong to install telerik angular report-viewer package is appreciated.

                      command:  npm install @progress/telerik-angular-native-report-viewer

 

√ Browser application bundle generation complete.

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:8:0-59 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-dateinputs' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:12:0-56 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-dropdowns' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:14:0-53 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-inputs' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:16:0-54 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-buttons' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:18:0-61 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-notification' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:20:0-55 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-layout' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:22:0-56 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-toolbar' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:24:0-59 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-indicators' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:26:0-55 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-treeview' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:28:0-54 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-tooltip' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:30:0-54 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-icons' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:32:0-54 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-pager' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:34:0-55 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-dialog' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:36:0-54 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-listbox' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:39:0-66 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-conversational-ui' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:41:0-54 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-utils' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:43:0-60 - Error: Module not found: Error: Can't resolve '@progress/kendo-angular-label' in '\AngularUI\ClientApp\node_modules\@progress\telerik-angular-native-report-viewer\fesm2022'

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:880:53-65 - Error: export 'debounceTime' (imported as 'debounceTime') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:1407:30-34 - Error: export 'take' (imported as 'take') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:1447:30-34 - Error: export 'take' (imported as 'take') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)

 

./node_modules/@progress/telerik-angular-native-report-viewer/fesm2022/progress-telerik-angular-native-report-viewer.mjs:1492:32-36 - Error: export 'take' (imported as 'take') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throw Error, timer, using, zip)

 Error: error NG8001: 'reporting-angular-viewer' is not a known element:

1. If 'reporting-angular-viewer' is an Angular component, then verify that it is part of this module.

2. If 'reporting-angular-viewer' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.

              

Asmerom
Top achievements
Rank 1
Iron
 answered on 15 Jul 2025
1 answer
24 views

Hello,

Im retrieving some images from the database and im trying to show them like in a grid view like the mobile gallery. I've been trying with List and a picture box but each image shows in its on row.

What im trying to do

Column1          Column2
   Image1            Image2
   Image3           Image4

What im getting

Column1          Column2
   Image1           
   Image2
   Image3           
   Image4

Any help appreciated

Krasimir
Top achievements
Rank 3
Bronze
Iron
Iron
 answered on 14 Jul 2025
2 answers
26 views

I'm having issues with hiding or disabling the Search button on the Report Viewer. 

I found the attribute here for the Search Dialog:

https://docs.telerik.com/reporting/embedding-reports/display-reports-in-applications/web-application/html5-report-viewer/api-reference/data-attributes

I found this link on how to disable a button in the Viewer:

https://docs.telerik.com/reporting/knowledge-base/hide-or-change-html5-report-viewer-toolbar-buttons

But when I try it, the Search button continues to be active.

This is the code I have below. I would also point out that the reason I am trying to hide the Search is because when I do try to a search, I get a bunch of gobbly-gook that appears in the results. See attached. I'm not sure what that is all about. So I am willing to keep the Search button active as an alternative if there is a way to return clean results.

    <script type="text/javascript">

        $("#reportViewer1")
            .telerik_ReportViewer({
                serviceUrl: "api/reports/",
                //templateUrl: /ReportViewer/templates/telerikReportViewerTemplate-FA-19.0.25.211.html
                reportSource: {
                    report: "PhoneDirectory.trdp",
                    parameters: {
                        CultureID: "en"
                    },
                    viewMode: telerikReportViewer.ViewModes.INTERACTIVE,
                    scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,
                    /*                    renderingEnd: onRenderingEnd,*/
                    ready: function () {
                        $("[data-command='telerik_ReportViewer_toggleSearchDialog']").parent().hide();
                    },

                    scale: 1.0,
                    enableAccessibility: false,
                    sendEmail: { enabled: true }
                }
            });
    </script>-->
Joe
Top achievements
Rank 1
Iron
 answered on 07 Jul 2025
0 answers
19 views

I am using reporting 15.2 in Sitefinity 14.3, works great

Updated to sitefinity 15.3 copied over all the reporting assemblies and now it's throwing this error

Cannot access the Reporting REST service. (serviceUrl = '/api/reports/'). Make sure the service address is correct and enable CORS if needed. (https://enable-cors.org)

It's clearly not CORS related, but the 404 not found is weird.  Any thoughts?

 

Request URL
https://dev.x.ca/api/reports/version
Request Method
GET
Status Code
404 Not Found
sitefinitysteve
Top achievements
Rank 2
Iron
Iron
Veteran
 asked on 07 Jul 2025
2 answers
28 views

Hi support team.

I go back to you on this subject because I have a problem as below:

I'm using Telerik Report Designer Standalone for making my report template.

In fact, I have 2 series: 1 barserie and 1 lineserie. In Line serie, I can make any style of DataPointLabel without any problem. However in bar serie, I want to change the color of DataPointLabel as below but it doesn't take in affect, please help me to resolve it

minh
Top achievements
Rank 2
Iron
Iron
Iron
 answered on 04 Jul 2025
1 answer
23 views

Hi team, please help to check this error

Telerik.Reporting.Serialization.SerializerExcepion
  HResult=0x80131500
  Message=The XML serializer cannot resolve type with name: System.ComponentModel.ISite
  Source=Telerik.Reporting
  StackTrace:
   at Telerik.Reporting.Serialization.ObjectReader.ReadValue(Object obj, PropertyDescriptor prop)
   at Telerik.Reporting.Serialization.ObjectReader.ReadAttributes(Object obj, PropertyDescriptorCollection props)
   at Telerik.Reporting.Serialization.ObjectReader.ReadProperties(Object obj)
   at Telerik.Reporting.Serialization.ObjectReader.ReadObject(Type type)
   at Telerik.Reporting.Serialization.ObjectReader.ReadXmlElement(String name)
   at Telerik.Reporting.Serialization.ObjectReader.ReadCollection(Object collection)
   at Telerik.Reporting.Serialization.ObjectReader.ReadProperties(Object obj)
   at Telerik.Reporting.Serialization.ObjectReader.ReadObject(Type type)
   at Telerik.Reporting.Serialization.ObjectReader.ReadXmlElement(String name)
   at Telerik.Reporting.Serialization.ObjectReader.Deserialize(IResourceHandler handler)
   at Telerik.Reporting.JsonSerialization.JsonSerializer.Deserialize(String value)
   at Telerik.Reporting.JsonSerialization.JsonSerializer.Deserialize(StreamReader reader)
   at Telerik.Reporting.JsonSerialization.JsonSerializer.Deserialize(Stream stream)
   at Telerik.Reporting.JsonSerialization.ReportJsonSerializer.Deserialize(Stream stream)
   at MOS.ReportWriter.Web.Core.TelerikExtensions.ReportHelper.LoadReportFromDataWithDatasources(String reportData, List`1 webServiceDataSources) in C:\working\sourcecode\hrs-report\MOS.ReportWriter.Web\Core\TelerikExtensions\ReportHelper.cs:line 110

  This exception was originally thrown at this call stack:
    [External Code]

Inner Exception 1:
InvalidCastException: Invalid cast from 'System.String' to 'System.ComponentModel.ISite'.

When i trying to modify the WebServiceDatasource in the report document with code below


public static Telerik.Reporting.Report LoadReportFromDataWithDatasources(string reportData, List<CustomeWebServiceDataSource> webServiceDataSources)
{
    try
    {
        using MemoryStream stream = new(Convert.FromBase64String(reportData));
        var reportPackager = new ReportPackager();
        Telerik.Reporting.Report reportDocument = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(stream);

        // Filter only WebServiceDataSources
        var originalDataSources = reportDocument.GetDataSources();
        var webServiceSources = originalDataSources.OfType<WebServiceDataSource>().ToList();

        // Match and update existing WebServiceDataSources
        var matchedDataSources = webServiceSources
            .Where(ws => webServiceDataSources.Any(x => x.ServiceUrl == ws.ServiceUrl))
            .ToList();

        var unmatchedCustomSources = webServiceDataSources
            .Where(x => !webServiceSources.Any(ws => ws.ServiceUrl == x.ServiceUrl))
            .ToList();

        var rebuiltDataSources = new List<object>();

        foreach (var ws in matchedDataSources)
        {
            var matchingCustom = webServiceDataSources.FirstOrDefault(x => x.ServiceUrl == ws.ServiceUrl);
            var paramValues = JsonConvert.DeserializeObject<Dictionary<string, object>>(matchingCustom?.ParameterValues);

            var updatedWs = new CustomeWebServiceDataSource
            {
                Name = ws.Name,
                DataEncoding = ws.DataEncoding.CodePage,
                Method = ws.Method.ToString(),
                Parameters = ws.Parameters.Select(p => new DataSourceParameter
                {
                    Name = p.Name,
                    Value = new DataSourceParameterValue { Value = p.Value?.ToString() },
                    WebServiceParameterType = p.WebServiceParameterType.ToString()
                }).ToList(),
                ServiceUrl = ws.ServiceUrl,
                DataSelector = ws.DataSelector
            };

            updatedWs.SetParameterValues(paramValues);
            rebuiltDataSources.Add(updatedWs);
        }

        // Add new unmatched custom sources
        rebuiltDataSources.AddRange(unmatchedCustomSources);

        // Preserve non-WebServiceDataSources
        var otherDataSources = originalDataSources.Where(ds => ds is not WebServiceDataSource);
        rebuiltDataSources.AddRange(otherDataSources);

        // Serialize updated report and inject data sources
        var reportContent = SerializeReportToJson(reportDocument);
        var reportJson = JsonConvert.DeserializeObject<JToken>(reportContent);

        // Use full polymorphic list
        reportJson["DataSources"] = JsonConvert.DeserializeObject<JArray>(JsonConvert.SerializeObject(rebuiltDataSources));
        reportContent = JsonConvert.SerializeObject(reportJson);

        using MemoryStream finalStream = new(System.Text.Encoding.UTF8.GetBytes(reportContent));
        var serializer = new ReportJsonSerializer();
        return (Telerik.Reporting.Report)serializer.Deserialize(finalStream);
    }
    catch
    {
        return null;
    }
}
the error occured at 
return (Telerik.Reporting.Report)serializer.Deserialize(finalStream);
Todor
Telerik team
 answered on 03 Jul 2025
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Andrey
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?