DxReportViewer.OnCustomizeParameters Event
Allows you to modify parameter settings and specify custom editors for report parameters.
Namespace: DevExpress.Blazor.Reporting
Assembly: DevExpress.Blazor.Reporting.v25.2.Viewer.dll
NuGet Package: DevExpress.Blazor.Reporting.Viewer
Declaration
Parameters
| Type | Description |
|---|---|
| ParametersModel | An object that contains report parameters and allows you to manage them. |
Remarks
Handle the OnCustomizeParameters event to modify parameter settings and specify custom parameter editors.
Example: Replace a Standard Parameter Editor with a Custom Template
Important
Customization options described in this example are available to owners of DevExpress ASP.NET & Blazor Subscription, DXperience, or Universal subscription (subscriptions that include DevExpress ASP.NET & Blazor UI Controls). The DevExpress Reporting Subscription does not support UI customization in Report Viewer or End-User Report Designer.
Refer to the following help topic for information on subscription options: Installation - Subscriptions that Include Reporting Components.
Implement a custom editor based on the DxSpinEdit<T> component. The following code sample defines a custom editor for integer values in the range 0-10 in the
CustomInt.razorfile:<DxSpinEdit @bind-Value="@EditorValue" MinValue="0" MaxValue="10"/> @code { Int32 EditorValue { get { return (Int32)Value; } set { Value = value; ValueChanged.InvokeAsync(value); } } [Parameter] public object Value { get; set; } [Parameter] public EventCallback<object> ValueChanged { get; set; } }Handle the
OnCustomizeParametersevent and specify theCustomIntcomponent as the editor’s template (the ValueTemplate property):<DxReportViewer @ref="reportViewer" OnCustomizeParameters="OnCustomizeParameters"> </DxReportViewer> @code { DxReportViewer reportViewer; void OnCustomizeParameters(ParametersModel parametersModel) { foreach (var parameter in parametersModel.VisibleItems) { if (parameter.Type == typeof(int)) { parameter.ValueTemplate = GetIntEditorTemplate(parameter); } } } RenderFragment GetIntEditorTemplate(ParameterModel paramModel) { return @<CustomInt @bind-value="@paramModel.Value"></CustomInt>; } }
Example: Create a Standalone Parameter Editor
Important
Customization options described in this example are available to owners of DevExpress ASP.NET & Blazor Subscription, DXperience, or Universal subscription (subscriptions that include DevExpress ASP.NET & Blazor UI Controls). The DevExpress Reporting Subscription does not support UI customization in Report Viewer or End-User Report Designer.
Refer to the following help topic for information on subscription options: Installation - Subscriptions that Include Reporting Components.
You can hide the Parameter Panel and define a custom editor to specify parameter values:

The code below does the following:
- Hides the Parameter Panel through the Viewer’s TabPanelModel property.
- Creates a custom component based on DxComboBox to allow users to specify the report parameter value. The
OnCustomizeParametersis handled to specify the created editor as the editor for the OrderIdParameter parameter. - Creates a DxButton that handles user clicks and passes the specified parameter value to the Report Viewer. The OnSubmitParameters() method is triggered to build the report document with a new parameter value.
@page "/standalonepanel/"
@using DevExpress.Blazor.Reporting
@using DevExpress.XtraReports.UI
@using BlazorCustomization.PredefinedReports
@using DevExpress.Blazor.Reporting.Models
@using DevExpress.Blazor
@using Models
<div class="cw-880">
<EditForm Model="@OrdersModel"
OnValidSubmit="@HandleValidSubmit"
Context="EditFormContext">
<DataAnnotationsValidator />
<DxFormLayout CssClass="w-75 parameters-panel-custom">
<DxFormLayoutItem Caption="Order Id:" ColSpanMd="4">
<CustomCombobox Model=OrdersModel ParameterModel=ParameterModel />
</DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="1">
<DxButton SubmitFormOnClick="true"
Text="Submit"
Title="Press the key to reload the report with the parameters."
RenderStyle="ButtonRenderStyle.Secondary" />
</DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="7">
<ValidationSummary />
</DxFormLayoutItem>
</DxFormLayout>
</EditForm>
</div>
<div style="width: 100%; height: calc(100% - 4rem);">
<DxReportViewer @ref="reportViewer"
OnCustomizeParameters="OnCustomizeParameters"
Report="Report" />
</div>
@code {
DxReportViewer reportViewer;
XtraReport Report = new TableReport();
OrdersModel OrdersModel = new OrdersModel();
ParameterModel ParameterModel { get; set; }
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
var parameterTab = reportViewer.TabPanelModel.Tabs
.Where(Tab => Tab.ContentModel is ParametersModel)
.FirstOrDefault();
parameterTab.Visible = false;
StateHasChanged();
}
base.OnAfterRender(firstRender);
}
void HandleValidSubmit()
{
if (!OrdersModel.OrdersData.Contains(OrdersModel.OrderId))
{
OrdersModel.OrdersData.Add(OrdersModel.OrderId);
OrdersModel.OrdersData.Sort();
}
reportViewer.ParametersModel.OnSubmitParameters();
}
void OnCustomizeParameters(ParametersModel parameters)
{
ParameterModel = parameters.VisibleItems
.Where(param => param.Name == "OrderIdParameter")
.FirstOrDefault();
}
}