Full disclosure, this is not something I've tried myself, but what if you tried doing the customization on the repeat grid itself instead of in the report definition?
In taking a quick look, I found that the repeat grid layout let's you define an inline style on the row. In addition, you can define your own custom table style and reference it in the grid's property panel: Presentation tab > Style > Other.
I was thinking that you could perhaps leverage the inline style to insert the conditional CSS similar to what you were doing for list views. But on second thought that field most likely doesn't offer that level of granularity.
Would it be possible to configure your row layouts within a section with conditionalized layouts to display the data in one style or the other?
It's very possible that your solution of using the custom control to conditionally display the data the way you want is the best solution. But definitely would encourage others to chime in with alternate suggestions.
I would also suggest taking a look at the Skin rule form and see if there's something you can leverage using some combination of the configuration options.
I see that you can define styles for banding and total rows. As well as selected rows and hovering. In most cases these options provide the ability to define "additional styles". Nothing seems to be specific to conditional behavior, but at the same time, it looks like you can pretty much enter your own CSS styles. So maybe there is the potential to define these additional styles with programatic conditions, and then you can reference the skin from the grid layout property panel.
*Also* (in what you can certainly call me out as trying to "troubleshoot this backwards"), going back to your original question: Is there anything in the Report Definition that let's you customize the look of the rows... I suggest taking a look at the "Display rows using custom section" option on the Report Viewer tab.
I think this might be what you are really looking for. It's actually an improvement over the list view functionality in that you can manage the conditional layouts of your row display leveraging an auto-generated section rule. It will probably require some playing around with, but I suggest giving it a shot.
Here's a basic overview of the option (and its limitations) as documented in the Help:
Display rows using custom section - Optional. Available only for list reports. Select to replace the default display for each row of a report with a custom section. A field opens where you can select the section. Select the edit icon to create a new custom section.
Sections used for this purpose can have simple controls such as text fields, but cannot use complex controls such as grids or trees.
Test any custom sections you that use for displaying rows. You might get unexpected results as the report definition tries to populate a section that does not account for all the properties it displays.
Nested sections might not render properly when used as custom sections. When a window is resized, the width of the custom section does not automatically resize. Design the custom section to fit into the smallest display size that is possible.
Correct me if I am wrong but the control mentioned above will only apply to a specifc column rather than entire row. The requirement here is to highlight the entire row rather than highlighting columns.@.
Control can be configured for all columns but will it give you the same look what you used to get in List view? I think It will only highlight those fields but not full row. My requirement is to highlight full row.
Please refer to the screenshot below. Could you please suggest how would i use above mentioned code snippet for my requirement. Currently I am using below HTML fragment to highlight specific field (here it is Flight No)
But my requirement is to highlight the row in below format. Below report was built in list view---
The main reason for report definition is for reporting activities such a filter, export to excel pdf etc. Within the product in the latest version too nothing is embedded. As mentioned on the top there are many ways to use custom css to achieve the same as per business requirement.