I'm trying to add tooltips to an existing DataGrid's Cells, but per the documentation, it only seems like I'm able to add the Tooltip generator wrapper delegate to the RadzenDataGrid object, not the RadzenDataGridColumn. I'd like to pass in data from the grid row and column I'm currently hovering over, since only certain columns will have tooltips enabled. The tooltip will display text that uses data from other columns in the same row as input. I've already tried the ContextMenu, but for some reason, it won't recognize the right click event to trigger the menu. Is it possible to do this?
ContextMenu example foe DataGrid cells can be found here:
https://blazor.radzen.com/datagrid-cell-contextmenu
For tooltips you might need to define custom DataGrid column Template.
How would I go about doing the column template approach?
Check our demos - there are plenty of examples with DataGrid column templates.
Yep, I found the page. What specifically would I use to bind the tooltip generation to the column template? I found that
<RadzenDataGridColumn TItem="EmployeeCompliance" Context="data" Property="forkliftCertification" Title="Forklift Certified?" Type="boolean">
<Template MouseEnter="@(args => ShowTooltip(args))">
@data.forkliftCertification
</Template>
</RadzenDataGridColumn>
doesn't work as MouseEnter isn't a recognized attribute of Template.
You cannot assign events on Template tag. I strongly suggest you to check how Blazor templated components works:
This is what I'm confused about. Where would I put the MouseEnter bind, then?
Template tag is just a way to tell that something have child components. DataGrid columns are abstract objects with a Template property used to render content for each cell in every row/column. You can define child components like Label, Button, etc. in the Template and these child components have events like MouseEnter.
I see. So instead of printing the data directly to the DataGrid, I should populate the DataGrid cell with a label containing the data?
Yes, this is what I've already posted in my previous reply.