@@ -5505,6 +5505,106 @@ public async Task OnSaveAsync_Ok()
55055505 Assert . True ( afterModify ) ;
55065506 }
55075507
5508+ [ Fact ]
5509+ public async Task OnAfterCancelSaveAsync_Popup ( )
5510+ {
5511+ var localizer = Context . Services . GetRequiredService < IStringLocalizer < Foo > > ( ) ;
5512+ var items = Foo . GenerateFoo ( localizer , 2 ) ;
5513+ var afterCancelSave = false ;
5514+ var cut = Context . RenderComponent < BootstrapBlazorRoot > ( pb =>
5515+ {
5516+ pb . AddChildContent < Table < Foo > > ( pb =>
5517+ {
5518+ pb . Add ( a => a . RenderMode , TableRenderMode . Table ) ;
5519+ pb . Add ( a => a . Items , items ) ;
5520+ pb . Add ( a => a . IsMultipleSelect , true ) ;
5521+ pb . Add ( a => a . ShowToolbar , true ) ;
5522+ pb . Add ( a => a . ShowExtendButtons , true ) ;
5523+ pb . Add ( a => a . EditMode , EditMode . Popup ) ;
5524+ pb . Add ( a => a . OnAfterCancelSaveAsync , ( ) =>
5525+ {
5526+ afterCancelSave = true ;
5527+ return Task . CompletedTask ;
5528+ } ) ;
5529+ pb . Add ( a => a . TableColumns , foo => builder =>
5530+ {
5531+ builder . OpenComponent < TableColumn < Foo , string > > ( 0 ) ;
5532+ builder . AddAttribute ( 1 , "Field" , "Name" ) ;
5533+ builder . AddAttribute ( 2 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Name" , typeof ( string ) ) ) ;
5534+ builder . CloseComponent ( ) ;
5535+ } ) ;
5536+ } ) ;
5537+ } ) ;
5538+
5539+ // test edit button
5540+ var button = cut . FindAll ( "tbody tr button" ) ;
5541+ await cut . InvokeAsync ( ( ) => button [ 0 ] . Click ( ) ) ;
5542+
5543+ // 保存按钮
5544+ var saveButton = cut . Find ( ".bb-editor-footer .btn-primary" ) ;
5545+ await cut . InvokeAsync ( ( ) => saveButton . Click ( ) ) ;
5546+ Assert . False ( afterCancelSave ) ;
5547+
5548+ var modal = cut . FindComponent < Modal > ( ) ;
5549+ await cut . InvokeAsync ( modal . Instance . CloseCallback ) ;
5550+
5551+ await cut . InvokeAsync ( ( ) => button [ 0 ] . Click ( ) ) ;
5552+ var cancelButton = cut . Find ( ".bb-editor-footer .btn" ) ;
5553+
5554+ // 取消按钮
5555+ await cut . InvokeAsync ( ( ) => cancelButton . Click ( ) ) ;
5556+ Assert . True ( afterCancelSave ) ;
5557+ }
5558+
5559+ [ Fact ]
5560+ public async Task OnAfterCancelSaveAsync_Drawer ( )
5561+ {
5562+ var localizer = Context . Services . GetRequiredService < IStringLocalizer < Foo > > ( ) ;
5563+ var items = Foo . GenerateFoo ( localizer , 2 ) ;
5564+ var afterCancelSave = false ;
5565+ var cut = Context . RenderComponent < BootstrapBlazorRoot > ( pb =>
5566+ {
5567+ pb . AddChildContent < Table < Foo > > ( pb =>
5568+ {
5569+ pb . Add ( a => a . RenderMode , TableRenderMode . Table ) ;
5570+ pb . Add ( a => a . Items , items ) ;
5571+ pb . Add ( a => a . IsMultipleSelect , true ) ;
5572+ pb . Add ( a => a . ShowToolbar , true ) ;
5573+ pb . Add ( a => a . ShowExtendButtons , true ) ;
5574+ pb . Add ( a => a . EditMode , EditMode . Drawer ) ;
5575+ pb . Add ( a => a . OnAfterCancelSaveAsync , ( ) =>
5576+ {
5577+ afterCancelSave = true ;
5578+ return Task . CompletedTask ;
5579+ } ) ;
5580+ pb . Add ( a => a . TableColumns , foo => builder =>
5581+ {
5582+ builder . OpenComponent < TableColumn < Foo , string > > ( 0 ) ;
5583+ builder . AddAttribute ( 1 , "Field" , "Name" ) ;
5584+ builder . AddAttribute ( 2 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Name" , typeof ( string ) ) ) ;
5585+ builder . CloseComponent ( ) ;
5586+ } ) ;
5587+ } ) ;
5588+ } ) ;
5589+
5590+ // test edit button
5591+ var button = cut . FindAll ( "tbody tr button" ) ;
5592+ await cut . InvokeAsync ( ( ) => button [ 0 ] . Click ( ) ) ;
5593+
5594+ // 保存按钮
5595+ var saveButton = cut . Find ( ".bb-editor-footer .btn-primary" ) ;
5596+ await cut . InvokeAsync ( ( ) => saveButton . Click ( ) ) ;
5597+ Assert . False ( afterCancelSave ) ;
5598+
5599+ // 取消按钮
5600+ button = cut . FindAll ( "tbody tr button" ) ;
5601+ await cut . InvokeAsync ( ( ) => button [ 0 ] . Click ( ) ) ;
5602+
5603+ var cancelButton = cut . Find ( ".bb-editor-footer .btn" ) ;
5604+ await cut . InvokeAsync ( ( ) => cancelButton . Click ( ) ) ;
5605+ Assert . True ( afterCancelSave ) ;
5606+ }
5607+
55085608 [ Theory ]
55095609 [ InlineData ( EditMode . EditForm ) ]
55105610 [ InlineData ( EditMode . InCell ) ]
0 commit comments