@@ -998,6 +998,116 @@ public async Task ShowColumnList_Ok()
998998 Assert . Equal ( "地址" , labels [ 1 ] . TextContent ) ;
999999 }
10001000
1001+ [ Fact ]
1002+ public void ShowColumnList_NewVisibleColumnUseDefaultWidth_Ok ( )
1003+ {
1004+ var state = new TableColumnClientStatus ( )
1005+ {
1006+ TableWidth = 240 ,
1007+ Columns =
1008+ [
1009+ new TableColumnState ( ) { Name = nameof ( Foo . Name ) , Visible = true , Width = 120 } ,
1010+ new TableColumnState ( ) { Name = nameof ( Foo . Address ) , Visible = true , Width = 120 } ,
1011+ new TableColumnState ( ) { Name = nameof ( Foo . Count ) , Visible = true } ,
1012+ new TableColumnState ( ) { Name = nameof ( Foo . DateTime ) , Visible = true }
1013+ ]
1014+ } ;
1015+
1016+ Context . JSInterop . Setup < TableColumnClientStatus > ( "getColumnStates" , "test-new-column" ) . SetResult ( state ) ;
1017+ var localizer = Context . Services . GetRequiredService < IStringLocalizer < Foo > > ( ) ;
1018+ var cut = Context . Render < BootstrapBlazorRoot > ( pb =>
1019+ {
1020+ pb . AddChildContent < Table < Foo > > ( pb =>
1021+ {
1022+ pb . Add ( a => a . RenderMode , TableRenderMode . Table ) ;
1023+ pb . Add ( a => a . AllowResizing , true ) ;
1024+ pb . Add ( a => a . ColumnMinWidth , 80 ) ;
1025+ pb . Add ( a => a . Items , Foo . GenerateFoo ( localizer , 2 ) ) ;
1026+ pb . Add ( a => a . TableColumns , foo => builder =>
1027+ {
1028+ builder . OpenComponent < TableColumn < Foo , string > > ( 0 ) ;
1029+ builder . AddAttribute ( 1 , "Field" , "Name" ) ;
1030+ builder . AddAttribute ( 2 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Name" , typeof ( string ) ) ) ;
1031+ builder . CloseComponent ( ) ;
1032+
1033+ builder . OpenComponent < TableColumn < Foo , string > > ( 3 ) ;
1034+ builder . AddAttribute ( 4 , "Field" , "Address" ) ;
1035+ builder . AddAttribute ( 5 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Address" , typeof ( string ) ) ) ;
1036+ builder . CloseComponent ( ) ;
1037+
1038+ builder . OpenComponent < TableColumn < Foo , int > > ( 6 ) ;
1039+ builder . AddAttribute ( 7 , "Field" , foo . Count ) ;
1040+ builder . AddAttribute ( 8 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Count" , typeof ( int ) ) ) ;
1041+ builder . AddAttribute ( 9 , nameof ( ITableColumn . Width ) , 90 ) ;
1042+ builder . CloseComponent ( ) ;
1043+
1044+ builder . OpenComponent < TableColumn < Foo , bool > > ( 10 ) ;
1045+ builder . AddAttribute ( 11 , "Field" , foo . Complete ) ;
1046+ builder . AddAttribute ( 12 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Complete" , typeof ( bool ) ) ) ;
1047+ builder . CloseComponent ( ) ;
1048+
1049+ builder . OpenComponent < TableColumn < Foo , DateTime ? > > ( 13 ) ;
1050+ builder . AddAttribute ( 14 , "Field" , foo . DateTime ) ;
1051+ builder . AddAttribute ( 15 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "DateTime" , typeof ( DateTime ? ) ) ) ;
1052+ builder . AddAttribute ( 16 , nameof ( ITableColumn . Fixed ) , true ) ;
1053+ builder . CloseComponent ( ) ;
1054+ } ) ;
1055+ pb . Add ( a => a . ClientTableName , "test-new-column" ) ;
1056+ } ) ;
1057+ } ) ;
1058+
1059+ cut . Contains ( "style=\" width: 90px;\" " ) ;
1060+ cut . Contains ( "style=\" width: 80px;\" " ) ;
1061+ cut . Contains ( "style=\" width: 200px;\" " ) ;
1062+ }
1063+
1064+ [ Fact ]
1065+ public void ShowColumnList_NewVisibleColumnUseOptionDefaultWidth_Ok ( )
1066+ {
1067+ var state = new TableColumnClientStatus ( )
1068+ {
1069+ TableWidth = 240 ,
1070+ Columns =
1071+ [
1072+ new TableColumnState ( ) { Name = nameof ( Foo . Name ) , Visible = true , Width = 120 } ,
1073+ new TableColumnState ( ) { Name = nameof ( Foo . Address ) , Visible = true , Width = 120 }
1074+ ]
1075+ } ;
1076+
1077+ Context . JSInterop . Setup < TableColumnClientStatus > ( "getColumnStates" , "test-new-column-option-width" ) . SetResult ( state ) ;
1078+ var localizer = Context . Services . GetRequiredService < IStringLocalizer < Foo > > ( ) ;
1079+ var cut = Context . Render < BootstrapBlazorRoot > ( pb =>
1080+ {
1081+ pb . AddChildContent < Table < Foo > > ( pb =>
1082+ {
1083+ pb . Add ( a => a . RenderMode , TableRenderMode . Table ) ;
1084+ pb . Add ( a => a . AllowResizing , true ) ;
1085+ pb . Add ( a => a . Items , Foo . GenerateFoo ( localizer , 2 ) ) ;
1086+ pb . Add ( a => a . TableColumns , foo => builder =>
1087+ {
1088+ builder . OpenComponent < TableColumn < Foo , string > > ( 0 ) ;
1089+ builder . AddAttribute ( 1 , "Field" , "Name" ) ;
1090+ builder . AddAttribute ( 2 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Name" , typeof ( string ) ) ) ;
1091+ builder . CloseComponent ( ) ;
1092+
1093+ builder . OpenComponent < TableColumn < Foo , string > > ( 3 ) ;
1094+ builder . AddAttribute ( 4 , "Field" , "Address" ) ;
1095+ builder . AddAttribute ( 5 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Address" , typeof ( string ) ) ) ;
1096+ builder . CloseComponent ( ) ;
1097+
1098+ builder . OpenComponent < TableColumn < Foo , int > > ( 6 ) ;
1099+ builder . AddAttribute ( 7 , "Field" , foo . Count ) ;
1100+ builder . AddAttribute ( 8 , "FieldExpression" , Utility . GenerateValueExpression ( foo , "Count" , typeof ( int ) ) ) ;
1101+ builder . CloseComponent ( ) ;
1102+ } ) ;
1103+ pb . Add ( a => a . ClientTableName , "test-new-column-option-width" ) ;
1104+ } ) ;
1105+ } ) ;
1106+
1107+ cut . Contains ( "style=\" width: 64px;\" " ) ;
1108+ cut . Contains ( "style=\" width: 304px;\" " ) ;
1109+ }
1110+
10011111 [ Fact ]
10021112 public void ShowCardView_Ok ( )
10031113 {
0 commit comments