KeiStory

반응형

BlazorDatasheet SheetDirty 이벤트로 변경 감지하기

 

이전 포스팅에이어

2025.03.02 - [코딩/Blazor] - BlazorDatasheet 사용하기

2025.03.03 - [코딩/Blazor] - BlazorDatasheet 에 동적 dynamic 바인딩 처리하기 - SQLiteDB/Dapper 이용

2025.03.03 - [코딩/Blazor] - BlazorDatasheet 로 ComboBox 데이터 표시하기

2025.03.05 - [코딩/Blazor] - BlazorDatasheet SetFormat 사용하기

Cell 내용이 변이 된 경우 변경을 감지하고 셀색을 변경하는 방법을 알아봅니다.

 

SheetDirty

sheet.SheetDirty 이벤트를 이용하면 cell 내용이 변경되었을 때 이벤트가 발생됩니다.

이때 이벤트 인자 e(DirtySheetEventArgs) 에서 영역을 가져와 배경색을 변경 할 수 있습니다. 

sheet.SheetDirty += Sheet_Sheetdirty;

private void Sheet_Sheetdirty(object? sender, DirtySheetEventArgs e)
{
    // SheetDirty 이벤트 제거
    sheet.SheetDirty -= Sheet_Sheetdirty;
    
    // 색변경
    foreach(var region in e.DirtyRegions.GetRegions(true))
    {
        var cell = sheet.Cells.GetCellsInRegion(region).FirstOrDefault();
        if (cell != null)
        {
            var format = cell.Format.Clone();
            format.BackgroundColor = "lightgray";
            sheet.SetFormat(region, format);
        }
    }

    Console.WriteLine("SheetDirty");
    
    // SheetDirty 이벤트 추가
    sheet.SheetDirty += Sheet_Sheetdirty;
}

e.DirtyRegions.GetRegions(true) 로 변경된 영역을 가져올 수 있습니다.

한 Cell 값만을 변경하는 경우에는 하나의 Cell 영역만 반환되지만

영역을 잡아서 수정하는 경우에는 여러 Cell 영역이 반환됩니다.

결과

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band