File tree Expand file tree Collapse file tree 8 files changed +35
-4
lines changed Expand file tree Collapse file tree 8 files changed +35
-4
lines changed Original file line number Diff line number Diff line change 11<Project Sdk =" Microsoft.NET.Sdk.Razor" >
22
33 <PropertyGroup >
4- <Version >9.7.4-beta04 </Version >
4+ <Version >9.7.4-beta05 </Version >
55 </PropertyGroup >
66
77 <ItemGroup >
Original file line number Diff line number Diff line change @@ -286,6 +286,7 @@ protected override async Task OnClearValue()
286286 await base . OnClearValue ( ) ;
287287
288288 SelectedItems . Clear ( ) ;
289+ await SetValue ( ) ;
289290 }
290291
291292 /// <summary>
@@ -459,7 +460,7 @@ private async Task SetValue()
459460
460461 if ( OnSelectedItemsChanged != null )
461462 {
462- await OnSelectedItemsChanged . Invoke ( SelectedItems ) ;
463+ await OnSelectedItemsChanged ( SelectedItems ) ;
463464 }
464465
465466 _lastSelectedValueString = CurrentValueAsString ;
Original file line number Diff line number Diff line change @@ -406,7 +406,10 @@ protected override async Task OnClearValue()
406406 await base . OnClearValue ( ) ;
407407
408408 SelectedItem = null ;
409- _lastSelectedValueString = "" ;
409+ if ( OnSelectedItemChanged != null )
410+ {
411+ await OnSelectedItemChanged ( new SelectedItem ( "" , "" ) ) ;
412+ }
410413 }
411414
412415 private string ? ReadonlyString => IsEditable ? null : "readonly" ;
Original file line number Diff line number Diff line change @@ -328,6 +328,7 @@ protected override async Task OnClearValue()
328328 await base . OnClearValue ( ) ;
329329
330330 SelectedItems . Clear ( ) ;
331+ await SetValue ( ) ;
331332 }
332333
333334 private bool _isToggle ;
@@ -435,7 +436,7 @@ private async Task SetValue()
435436
436437 if ( OnSelectedItemsChanged != null )
437438 {
438- await OnSelectedItemsChanged . Invoke ( SelectedItems ) ;
439+ await OnSelectedItemsChanged ( SelectedItems ) ;
439440 }
440441
441442 CurrentValue = [ .. SelectedItems . Select ( i => i . Value ) ] ;
Original file line number Diff line number Diff line change @@ -474,6 +474,10 @@ protected override async Task OnClearValue()
474474 await VirtualizeElement . RefreshDataAsync ( ) ;
475475 }
476476 SelectedItem = new SelectedItem < TValue > ( default ! , "" ) ;
477+ if ( OnSelectedItemChanged != null )
478+ {
479+ await OnSelectedItemChanged ( SelectedItem ) ;
480+ }
477481 }
478482
479483 private string ? ReadonlyString => IsEditable ? null : "readonly" ;
Original file line number Diff line number Diff line change @@ -690,6 +690,7 @@ public void DefaultVirtualizeItemText_Ok()
690690 [ Fact ]
691691 public async Task IsVirtualize_Items_Clearable_Ok ( )
692692 {
693+ IEnumerable < SelectedItem > ? selectedItems = null ;
693694 var cut = Context . RenderComponent < MultiSelect < string > > ( pb =>
694695 {
695696 pb . Add ( a => a . Items , new SelectedItem [ ]
@@ -703,6 +704,11 @@ public async Task IsVirtualize_Items_Clearable_Ok()
703704 pb . Add ( a => a . OverscanCount , 4 ) ;
704705 pb . Add ( a => a . IsClearable , true ) ;
705706 pb . Add ( a => a . ShowSearch , true ) ;
707+ pb . Add ( a => a . OnSelectedItemsChanged , items =>
708+ {
709+ selectedItems = items ;
710+ return Task . CompletedTask ;
711+ } ) ;
706712 } ) ;
707713
708714 // 覆盖有搜索条件时,点击清空按钮
@@ -718,6 +724,8 @@ public async Task IsVirtualize_Items_Clearable_Ok()
718724 // 点击 Clear 按钮
719725 var button = cut . Find ( ".clear-icon" ) ;
720726 await cut . InvokeAsync ( ( ) => button . Click ( ) ) ;
727+ Assert . NotNull ( selectedItems ) ;
728+ Assert . Empty ( selectedItems ) ;
721729
722730 // 下拉框显示所有选项
723731 items = cut . FindAll ( ".dropdown-item" ) ;
Original file line number Diff line number Diff line change @@ -132,9 +132,15 @@ public void Disabled_Ok()
132132 public void IsClearable_Ok ( )
133133 {
134134 var val = "Test2" ;
135+ string ? selectedValue = "Test2" ;
135136 var cut = Context . RenderComponent < SelectGeneric < string > > ( pb =>
136137 {
137138 pb . Add ( a => a . IsClearable , true ) ;
139+ pb . Add ( a => a . OnSelectedItemChanged , item =>
140+ {
141+ selectedValue = item . Value ;
142+ return Task . CompletedTask ;
143+ } ) ;
138144 pb . Add ( a => a . Items , new List < SelectedItem < string > > ( )
139145 {
140146 new ( "" , "请选择" ) ,
@@ -151,6 +157,7 @@ public void IsClearable_Ok()
151157 var clearButton = cut . Find ( ".clear-icon" ) ;
152158 cut . InvokeAsync ( ( ) => clearButton . Click ( ) ) ;
153159 Assert . Null ( val ) ;
160+ Assert . Null ( selectedValue ) ;
154161
155162 // 提高代码覆盖率
156163 var select = cut ;
Original file line number Diff line number Diff line change @@ -135,10 +135,16 @@ public void Select_Lookup()
135135 [ Fact ]
136136 public async Task IsClearable_Ok ( )
137137 {
138+ var selectedValue = "Test2" ;
138139 var val = "Test2" ;
139140 var cut = Context . RenderComponent < Select < string > > ( pb =>
140141 {
141142 pb . Add ( a => a . IsClearable , true ) ;
143+ pb . Add ( a => a . OnSelectedItemChanged , item =>
144+ {
145+ selectedValue = item . Value ;
146+ return Task . CompletedTask ;
147+ } ) ;
142148 pb . Add ( a => a . Items , new List < SelectedItem > ( )
143149 {
144150 new ( "" , "请选择" ) ,
@@ -155,6 +161,7 @@ public async Task IsClearable_Ok()
155161 var clearButton = cut . Find ( ".clear-icon" ) ;
156162 await cut . InvokeAsync ( ( ) => clearButton . Click ( ) ) ;
157163 Assert . Null ( val ) ;
164+ Assert . Equal ( "" , selectedValue ) ;
158165
159166 // 提高代码覆盖率
160167 var select = cut ;
You can’t perform that action at this time.
0 commit comments