Programmatically refresh a grid in a dashboard when it's datasource gets updated

A refresh can programmatically be called in C# and works great except for dashboards with multiple grids. The issue is that you need to focus on the grid you would like to refresh. You can do that manually by clicking on the grid to turn on the focus on it.

Items:

  1. Each grid in Epicor represents a BAQ (a query). The refresh button basically calls the “GetList” method of a BAQ to update the datasource then notifies the Grid (UltraGridView) to refresh it self. The notification is the important piece that was not happening when i set the focus on a grid using C#.
  2. The UltraGridView is a complex C# object from Infragistics. I explored and tried all it’s methods related to a focus, select, notify and refresh. No one worked except the focus but it was just focusing on the tab but not it’s grid.
  3. Two important details that helped me solved this problem:
    A- A row can be active and not necessarily selected (Highlighted) but a selected row is active.
    B- When a row is selected (manually or programmatically) outside the of the grid currently focused on load, it gives the focus to the target grid. That’s the hack I used to solve this problem.

One of the solution suggested in this forum was to programmatically select the first row of the targeted grid. That works only if the grid shows at least one record. Is there cleaner way to achieve that using C#?

1 Like