Could you tell me why when I create a new text box in the "detail_ItemDataBinding" method (for each row) ... this new text box is only created in the second row (and in the third row, and in fourth ... but never in the first) ...? I can not create any new text boxes in the first row ... It's the same code for each row
Why it happens?
Thanks
4 Answers, 1 is accepted
0
Hi Lucio,
Generally we don't encourage our users to create Telerik Reporting reports programmatically. We do not recommend also the report event handlers (as ItemDataBinding) to be used for modifying report definition.
It is not allowed to add new items in an event because it might cause side effects. Like in this case, the item is added from the second rendering of the Detail section:
Our recommendation is to create a TextBox item design-time and set it's properties on ItemDataBinding event:
For more information, please refer to these help articles:
- Report Events: Using Section Events
- Report Events: Understanding Events
If you need further help, send us the report files, test data and details about the expected behavior in a support ticket.
Regards,
Silviya
Progress Telerik
Generally we don't encourage our users to create Telerik Reporting reports programmatically. We do not recommend also the report event handlers (as ItemDataBinding) to be used for modifying report definition.
It is not allowed to add new items in an event because it might cause side effects. Like in this case, the item is added from the second rendering of the Detail section:
private
void
detail_ItemDataBinding(
object
sender, EventArgs e)
{
Telerik.Reporting.Processing.DetailSection detail = (sender
as
Telerik.Reporting.Processing.DetailSection);
Telerik.Reporting.TextBox test =
new
Telerik.Reporting.TextBox();
test.Location =
new
Telerik.Reporting.Drawing.PointU(Telerik.Reporting.Drawing.Unit.Inch(0D), Telerik.Reporting.Drawing.Unit.Inch(3.9418537198798731E-05D));
test.Name =
"test"
;
test.Size =
new
Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(2.2000000476837158D), Telerik.Reporting.Drawing.Unit.Inch(0.19996055960655212D));
test.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid;
test.Value =
"= Fields.test"
;
detail.ItemDefinition.Items.AddRange(
new
Telerik.Reporting.ReportItemBase[] { test });
}
Our recommendation is to create a TextBox item design-time and set it's properties on ItemDataBinding event:
private
void
detail_ItemDataBinding(
object
sender, EventArgs e)
{
Telerik.Reporting.Processing.DetailSection section = (sender
as
Telerik.Reporting.Processing.DetailSection);
Telerik.Reporting.Processing.TextBox txt = (Telerik.Reporting.Processing.TextBox)Telerik.Reporting.Processing.ElementTreeHelper.GetChildByName(section,
"test"
);
txt.Value =
"= Fields.test"
;
}
For more information, please refer to these help articles:
- Report Events: Using Section Events
- Report Events: Understanding Events
If you need further help, send us the report files, test data and details about the expected behavior in a support ticket.
Regards,
Silviya
Progress Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items
0
Lucio
Top achievements
Rank 1
answered on 02 Apr 2018, 04:32 PM
Thanks for answering. The problem is I have to create textboxes dynamically, because I have to form an Organization chart. And this Organization chart could be diferente any time. So I have to create them at run time.
If a use the "detail_ItemDataBound" event instead of... I can do it... But.. It seems the first row "jumps" to the second one and so... Is there any "bug" in telerik events?
If a use the "detail_ItemDataBound" event instead of... I can do it... But.. It seems the first row "jumps" to the second one and so... Is there any "bug" in telerik events?
0
Lucio
Top achievements
Rank 1
answered on 02 Apr 2018, 04:34 PM
Mistake: "If a use" = "If I use"...Sorry :-)
0
Hello Lucio,
In general, reports are data-driven which allows you to change an item's settings via conditional formatting, bindings and expression used as Value property, all based on the data fields.
So, my recommendation is to create TextBox items design-time, then modify their properties on ItemDataBinding event and use conditional formatting or binding rule to conditionally hide them. In case you have a complex requirement to show/hide data, you could create an user function that allow you to extend the default behavior of the Telerik Reporting engine.
As a side note, more considerations on this topic are provided in Modifying or Creating a report at Run-Time KB article.
Back to your question regarding the incorrect behavior of events, we would need to check the code of event handlers in order to provide you further suggestion. You can share it here or in a new support ticket.
Regards,
Silviya
Progress Telerik
In general, reports are data-driven which allows you to change an item's settings via conditional formatting, bindings and expression used as Value property, all based on the data fields.
So, my recommendation is to create TextBox items design-time, then modify their properties on ItemDataBinding event and use conditional formatting or binding rule to conditionally hide them. In case you have a complex requirement to show/hide data, you could create an user function that allow you to extend the default behavior of the Telerik Reporting engine.
As a side note, more considerations on this topic are provided in Modifying or Creating a report at Run-Time KB article.
Back to your question regarding the incorrect behavior of events, we would need to check the code of event handlers in order to provide you further suggestion. You can share it here or in a new support ticket.
Regards,
Silviya
Progress Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items