Hello
We have overidden the OnProvideListLabel method of “WebReportDesignerController” class to provide the LL instance with DataSource. We create the data and provide connection to this data every time depending on the value of ProvideListLabelContext.ClientCustomData. When the Preview button in WebReportDesigner is clicked, this overridden method is called three times and this causes the creation of our data source thrice which is a time taking process. Why is it that the LL instance is required thrice. How can we restrict calling the overidden method more than once?
The multiple calls in the controller are currently necessary in order to load any resources internally, etc. However, we are currently checking in the technical department whether a better and clearer variant could be implemented in the future that does not break compatibility. We will also provide a note on this in the .NET documentation in the future. For the moment, the first calls are only necessary for loading and providing resources and can simply be answered with an empty ListLabel object. Only the last call then requires the ListLabel object with the data sources and all desired options. This can be recognized by whether the parameter provideListLabelContext.ClientCustomData is defined - here is an example:
...
public override void OnProvideListLabel(
ProvideListLabelContext provideListLabelContext)
{
var LL = null;
if (!string.IsNullOrEmpty(provideListLabelContext.ClientCustomData))
{
// this is the important call for providing
// the List & Label instance with its data source
LL = new ListLabel();
LL.DataSource = ...
}
else
{
// this is an internal call for providing some
// basic List & Label ressources - can be an
// empty object _without_ data source etc.
LL = new ListLabel();
}
provideListLabelContext.NewInstance = LL;
}
...
Hello Daniel,
Thanks for your reply!
I already have that check with “ClientCustomData”. For me at least two calls are invoked with value in “ClientCustomData”. I will wait for your response from technical team. I have tried filtering with action name, but in some cases the HttpContext will be disposed by the time the overridden method is invoked. So that also did not help.
Thank you for your feedback - always welcome. We will forward to analyze the current behavior more in detail. I will keep you informed about the progress - but you will have to be a little patient.
I have good news for you. The development department has now added the new property Initializing to the parameter provideListLabelContext of the type ProvideListLabelContext in the method OnProvideListLabel():
This property indicates whether the List & Label instance is needed solely for the initialization of the Web Report Designer (e.g., for loading resources) or if it is required for the actual preview or printing. When set to true, the instance is only needed during initialization. When set to false, the instance is required for generating the preview or printing.
Can you please try this for yourself so that you no longer have the behavior described and the data source is only queried once as expected?
To get the necessary update, you will of course need new modules for List & Label 30. As a customer, you always have the option of obtaining the LatestPrerelease Service Pack in your account in the Service Pack area - in your case it must be at least List & Label 30 LatestPrerelease Service Pack (from 4/10/2025). Please install this and try to recreate the behavior with the new modules. I would be very happy to receive brief feedback here.
Hello Daniel,
Thanks for such a quick fix. I have taken the Latest PreRelase SP and tried locally. I do get the value of Initializing properly, but the data is not loaded properly. See the below error on opening the layout from the list.
I tried with Vue sample and there it seems to be working properly. I need to check again whether I used the SP properly. I will do that next week and update you.
I just found that the issue was either due to missing cxLL30pw.llx or System.CodeDom. I have added them and found that, by using the new property " Initializing" we can restrict the loading of DataSource to only once. Hope this fix will get into the release soon.
Thank you for your positive feedback and that the request now works as desired. The change will of course be included in the next service pack release.