Telerik Forums
Reporting Forum
1 answer
37 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
67 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
39 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
55 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
36 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
39 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
33 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
1 answer
44 views

 

Afer update to the newes Version , the context menu spans the full width of the window. see screenshot. its not possible to click a submenu.

how can i fix this?

thanks Thomas

Dimitar
Telerik team
 answered on 30 Jun 2025
1 answer
100 views

The Native Blazor Report Viewer uses Blazor Multiselect by default for multiselect parameters. This becomes very cluttered when many items are selected.

I want to display parameters in a multi-select dropdown list with check boxes, exactly like this: https://demos.telerik.com/aspnet-ajax/combobox/examples/functionality/checkboxes/defaultcs.aspx

The equivalent Blazor demo is more cluttered as selections showing in the select box: https://www.telerik.com/blazor-ui/documentation/knowledge-base/multiselect-checkbox-in-dropdown 

The article here https://docs.telerik.com/reporting/embedding-reports/display-reports-in-applications/web-application/native-blazor-report-viewer/customizing/how-to-create-custom-parameter-editors has an example on how to customize the parameter widget in Native Blazor Report Viewer.

Can anyone here share the code to create a nice clean multi-select dropdown list with check boxes for a parameter in the Native Blazor Report Viewer? 

 

Ivet
Telerik team
 answered on 27 Jun 2025
3 answers
373 views

Hi Telerik reporting support team,

We are looking for a solution to draw 2 series of chart in the same Graph: LineSeries and BarSeries. We did it successfully in Telerik WPF but not in Reporting.

In WPF, we can draw 2 series with 2 datasources in the same Graph.

In Reporting, we tried to draw 2 graphs, the bar overlays on line, but unfortunately, they are not positioned in the same scale (see picture).

image

Do you have any suggestion to us to achieve this behaviour?

 

Many thank for your help,

minh
Top achievements
Rank 2
Iron
Iron
Iron
 answered on 27 Jun 2025
Top users last month
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?