File tree Expand file tree Collapse file tree 4 files changed +23
-10
lines changed Expand file tree Collapse file tree 4 files changed +23
-10
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.2.5 </Version >
4+ <Version >9.2.6 </Version >
55 </PropertyGroup >
66
77 <ItemGroup >
Original file line number Diff line number Diff line change 1717 <span class =" form-select-append" ><i class =" @Icon" ></i ></span >
1818 <span class =" form-select-append ac-loading" ><i class =" @LoadingIcon" ></i ></span >
1919 <ul class =" dropdown-menu" >
20- @foreach ( var item in FilterItems )
20+ @foreach ( var item in Rows )
2121 {
2222 <li @key =" item" class =" dropdown-item" @onclick =" () => OnClickItem(item)" >
2323 @if (ItemTemplate == null )
3030 }
3131 </li >
3232 }
33- @if (ShowNoDataTip && FilterItems .Count == 0 )
33+ @if (ShowNoDataTip && Rows .Count == 0 )
3434 {
3535 <li class =" dropdown-item" >@NoDataTip </li >
3636 }
Original file line number Diff line number Diff line change @@ -115,7 +115,7 @@ protected override void OnParametersSet()
115115 PlaceHolder ??= Localizer [ nameof ( PlaceHolder ) ] ;
116116 Icon ??= IconTheme . GetIconByKey ( ComponentIcons . AutoCompleteIcon ) ;
117117
118- FilterItems ??= Items ? . ToList ( ) ?? [ ] ;
118+ Items ??= [ ] ;
119119 }
120120
121121 /// <summary>
@@ -130,6 +130,8 @@ private async Task OnClickItem(string val)
130130 }
131131 }
132132
133+ private List < string > Rows => FilterItems ?? Items . ToList ( ) ;
134+
133135 /// <summary>
134136 /// TriggerOnChange 方法
135137 /// </summary>
@@ -142,14 +144,16 @@ public async Task TriggerOnChange(string val)
142144 var items = await OnCustomFilter ( val ) ;
143145 FilterItems = items . ToList ( ) ;
144146 }
147+ else if ( string . IsNullOrEmpty ( val ) )
148+ {
149+ FilterItems = Items . ToList ( ) ;
150+ }
145151 else
146152 {
147153 var comparison = IgnoreCase ? StringComparison . OrdinalIgnoreCase : StringComparison . Ordinal ;
148- var items = string . IsNullOrEmpty ( val )
149- ? Items
150- : IsLikeMatch
151- ? Items . Where ( s => s . Contains ( val , comparison ) )
152- : Items . Where ( s => s . StartsWith ( val , comparison ) ) ;
154+ var items = IsLikeMatch
155+ ? Items . Where ( s => s . Contains ( val , comparison ) )
156+ : Items . Where ( s => s . StartsWith ( val , comparison ) ) ;
153157 FilterItems = items . ToList ( ) ;
154158 }
155159
Original file line number Diff line number Diff line change @@ -77,8 +77,16 @@ public async Task IsLikeMatch_Test()
7777 {
7878 pb . Add ( a => a . IsLikeMatch , true ) ;
7979 } ) ;
80- menus = cut . FindAll ( ".dropdown-item" ) ;
8180 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerOnChange ( "as" ) ) ;
81+ menus = cut . FindAll ( ".dropdown-item" ) ;
82+ Assert . Equal ( 2 , menus . Count ) ;
83+
84+ await cut . InvokeAsync ( ( ) => cut . Instance . TriggerOnChange ( "k1" ) ) ;
85+ menus = cut . FindAll ( ".dropdown-item" ) ;
86+ Assert . Single ( menus ) ;
87+
88+ await cut . InvokeAsync ( ( ) => cut . Instance . TriggerOnChange ( "" ) ) ;
89+ menus = cut . FindAll ( ".dropdown-item" ) ;
8290 Assert . Equal ( 2 , menus . Count ) ;
8391 }
8492
@@ -102,6 +110,7 @@ public async Task IgnoreCase_Ok()
102110 {
103111 pb . Add ( a => a . IgnoreCase , true ) ;
104112 } ) ;
113+ await cut . InvokeAsync ( ( ) => cut . Instance . TriggerOnChange ( "t" ) ) ;
105114 menus = cut . FindAll ( ".dropdown-item" ) ;
106115 Assert . Equal ( 2 , menus . Count ) ;
107116 }
You can’t perform that action at this time.
0 commit comments