Specify Parameter Editing Settings in ASP.NET MVC Applications
- 3 minutes to read
The Web Report Designer allows you to configure user interface elements related to parameter modification in the following ways:
- Use the SettingsParameterEditing property to apply settings to all parameters, groups, and separators.
- Handle the CustomizeParameterProperties event to implement a more tailored solution (for example, disable only specified property editors).
Review the following parameter customization scenarios:
Restrict Parameter Creation and Removal
Use the following properties to hide UI elements that allow users to add new and delete existing parameters, groups, and separators:
- AllowEditParameterCollection
- Hides the UI elements that allow users to add and delete parameters.
- AllowEditParameterGroups
- Hides the UI elements that allow users to add and delete parameter groups.
- AllowEditParameterSeparators
- Hides the UI elements that allow users to add and delete parameter separators.
The following code snippet disables the aforementioned properties:
@Html.DevExpress().ReportDesigner(settings => {
settings.Name = "ReportDesigner1";
settings.SettingsParameterEditing.AllowEditParameterCollection = false;
settings.SettingsParameterEditing.AllowEditParameterGroups = false;
settings.SettingsParameterEditing.AllowEditParameterSeparators = false;
}).BindToUrl("TestReport").GetHtml()
All Add and Delete buttons for parameters, groups, and separators are hidden from the Parameter Editor, Field List, and Properties Panel. The image below shows the resulting Parameter Editor’s appearance:
To restrict deletion only for specific parameters or item types, use the CustomizeParameterProperties event.
The following code snippet hides the Delete button for parameter1 and parameter4, and all parameter groups:
<script type="text/javascript">
function customizeParameterProperties(sender, args) {
if (args.parameter) {
const name = args.parameter.name;
if (name === 'parameter1' || name === 'parameter4') {
args.editOptions.allowDelete = false;
}
}
if (args.parameterPanelLayoutItem.layoutItemType === 'Group') {
args.editOptions.allowDelete = false;
}
}
</script>
@Html.DevExpress().ReportDesigner(settings => {
settings.Name = "ReportDesigner1";
settings.ClientSideEvents.CustomizeParameterProperties = "customizeParameterProperties";
}).BindToUrl("TestReport").GetHtml()
Restrict Parameter Property Modification
Use the AllowEditProperties property to disable all property editors for parameters and parameter groups.
If you want to disable or hide specific property editors for all or some parameters or groups, use the client-side CustomizeParameterProperties event.
The code snippet below does the following:
- Hides the Allow null value checkbox for all parameters.
- Disables the Description editor for parameter3.
- Disables the Title editor for all parameter groups.
<script type="text/javascript">
function customizeParameterProperties(sender, args) {
if (args.parameter) {
const allowNullInfo = args.getEditor('allowNull');
if (allowNullInfo) {
// Hide the Allow null value checkbox.
allowNullInfo.visible = false;
}
const name = args.parameter.name;
if (name === 'parameter3') {
const descriptionEditor = args.getEditor('description');
if (descriptionEditor) {
// Disable the Description editor.
descriptionEditor.disabled = true;
}
}
}
if (args.parameterPanelLayoutItem.layoutItemType === 'Group') {
const titleEditor = args.getEditor('title')
// Disable the Title editor.
titleEditor.disabled = true;
}
}
</script>
@Html.DevExpress().ReportDesigner(settings => {
settings.Name = "ReportDesigner1";
settings.ClientSideEvents.CustomizeParameterProperties = "customizeParameterProperties";
}).BindToUrl("TestReport").GetHtml()
The property editors for parameter3 look as follows (the Allow Null Value checkbox is hidden and the Description editor is disabled):
- Parameter Panel
- Properties Panel
The following snippet hides all property editors for the parameter1 parameter:
<script type="text/javascript">
function customizeParameterProperties(sender, args) {
if (args.parameter) {
const name = args.parameter.name;
if (name === 'parameter1'){
args.editors.forEach(i => {
// Hide editors.
i.visible = false;
// Disable editors.
//i.disabled = true;
});
}
}
}
</script>
@Html.DevExpress().ReportDesigner(settings => {
settings.Name = "ReportDesigner1";
settings.ClientSideEvents.CustomizeParameterProperties = "customizeParameterProperties";
}).BindToUrl("TestReport").GetHtml()
The parameter1 parameter has no visible property editors:
- Parameter Editor:
- Properties Panel
Restrict Parameter Reordering
Set the AllowReorderParameters property to false
to disable reorder actions in the Properties Panel and Parameter Editor:
@Html.DevExpress().ReportDesigner(settings => {
settings.Name = "ReportDesigner1";
settings.SettingsParameterEditing.AllowReorderParameters = false;
}).BindToUrl("TestReport").GetHtml()