Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
175
Igx-Hierarchical-Grid - Adding Custom Styles on Cell Edit and Keeping the Styles Applied on Row Expansion
posted

I am trying to add a Visual Indicator to any cell that is edited but hasn't had the corresponding change saved to our database.  I'm using the onCellEdit event to apply a custom 'edited-border' class that is changing the cell border to a 2px black or white dashed border depending on theme.

To do this dynamically, I am doing something like below which is tied to the onCellEdit event on my row-islands and heirarchical-grid html elements:

editDone(event){

   if(event.newValue !== event.oldValue){

       var cell = event.owner.getCellByKey(event.rowID, event.owner.columns[event.cellID.columnID].field);

       cell.nativeElement.classList.add('edited-border');

   }

}

The above code works just fine, until I start expanding rows to view child grids.  So for example if I were to have two entries in a Heirarchical grid, if I were to edit any field on the bottom entry, the style would apply.  If I were to then open up the child grid of the top entry, the style would then disappear.  As far as I can tell, it looks like the grid is changing the bottom row's style to match the odd row styling which removes any existing classes I have applied.  When I close the opened child grid, the 'edited-border' style will actually come back, so it looks like it is at least holding the original classes somehow.

How would I go about applying the edited-border class when a rowExpansion occurs? I thought about maybe holding onto every Cell I edit and trying to reapply, the problem I have is I can't figure out what event to use.  It doesn't look like there is an onRowExpansion event I can use.

We are using Ignite Angular v8.2.2.

Any insight would be appreciated,

Thanks,

-Randall

Parents Reply
  • 175
    Offline posted in reply to Petko Bozhinov

    Here is a rough stackblitz of what I am trying to accomplish: stackblitz.com/.../angular-2pczxt

    Please excuse the roughness of it, I am not sure why the icons are not loading.

    Now, I've stripped this down to the basic styling issue that I am having.  I appreciate you pointing out the batch editing features, however, that is not really what I am looking for.  All I am trying to do is get my custom edit style to persist.

    To reproduce the problem:

    1) Open up Object 1's child grid.

    2) Edit Any field on Subobject2 - a dashed line should appear when done.

    3) Open up Subobject 1's child grid - the dashed line on Subobject2's edited field should now disappear.

    I need that dashed box to not disappear when the child grid above its row is opened.  My guess on to why this is happening is that when that child grid is opened, the row's index changes and the Grid goes to apply the Even row styling which doesn't carry over the custom 'Edited-border' style.  What is interesting, is when that child grid is closed, the 'Edited-border' style returns, so some persistence is occurring.

    Is there a way to keep the 'Edited-border' styling when a child grid is opened above it? You mentioned the igx-grid__td—edited, however, as you can see, that class is nowhere to be seen in this case, so I can't use it.

    If you could let me know, I would appreciate it.

    Thanks.

Children