Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Perform validation across multiple cells during Save in Batch Edit using Syncfusion Blazor Data Grid

$
0
0

Minimal Repro (runnable)

https://blazorplayground.syncfusion.com/VNrIjvNbtiVkgpNo

Scenario

For each model, my grid displays two rows: "Time" and "Value".

Rule: If a user enters a value in the Time row for a given column (AM/PM), the corresponding Value row for that column must also have a value (and vice versa). If one is filled, both are required.

image

Requirements

I am using the Syncfusion Blazor DataGrid in batch edit mode and need to implement cross-cell validation (across rows, within the same column) with the following requirements:

  1. Immediate cell-level validation during edit (already working via custom validator).

    image image
  2. Cross-cell validation during Save: If multiple cells fail validation, all must be highlighted and show error tooltips.

    image
  3. If validation fails, block Save and scroll to the first invalid cell.

What I Have Tried (and Workaround)

  • Immediate cell-level validation is handled in a custom validator (works fine as seen above).
  • On "Save" button click, I merge batch changes and run cross-cell validation logic.
  • If errors are found, I try to set validation errors on the cells using a method like:
    public void SetValidationError(GridRowViewModelV2 row, string fieldName, string message){   var fieldIdentifier = new FieldIdentifier(row, fieldName);   messageStore.Add(fieldIdentifier, message);   context.ShowValidationMessage(fieldName, false, message);}
    • This successfully shows the error message but has couple problems

      image
    • This only works if the cell is selected when I click "Save". If cells are not selected, this has no effect.

    • This messes up validation on the grid because the fieldIdentifier created in this method won't match with FieldIdentifier passed in the CurrentEditContext.OnFieldChanged handler in the cell-level custom validator, so the error message cannot be cleared by the cell-level validator when the user fixes the issue.

  • (Workaround) I just use the error messages from cross-cell validation logic in a toast notification and block save but this is a hacky approach and would rather avoid this.

Is there a better way to do this?

Can this be done? If yes, I'd appreciate the help.

  • When user hits "Save", collect all the grid cell locations (using column and row indexes) where the error occurred (do this programmatically with custom logic)
  • Highlight those cells with error message in the cell's tooltip (do this programmatically with custom logic)
  • Scroll to the errored-out cells and focus on the first errored out cell (do this programmatically with custom logic)
  • When user enters correct value in the cell, clear the error message and error highlighting (do this programmatically with custom logic)

Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>