@@ -1374,57 +1374,60 @@ private RenderFragment RenderContentRow(TItem item) => builder =>
13741374 {
13751375 if ( colIndex > 1 )
13761376 {
1377+ // 合并单元格情况
13771378 colIndex -- ;
13781379 continue ;
13791380 }
1380- var cellClass = "" ;
1381- var colSpan = 0 ;
1382- string ? value = null ;
1383- RenderFragment ? valueTemplate = null ;
1384- if ( col . OnCellRender != null )
1385- {
1386- var cell = new TableCellArgs { Row = item , ColumnName = col . GetFieldName ( ) } ;
1387- col . OnCellRender ( cell ) ;
1388- cellClass = cell . Class ;
1389- colSpan = cell . Colspan ;
1390- valueTemplate = cell . ValueTemplate ;
1391- value = cell . Value ;
1392- colIndex = colSpan ;
1393- }
13941381
1395- var isFirstColOfTree = IsTree && index ++ == 0 ;
1396- var degree = 0 ;
1397- var isExpand = false ;
1398- var hasChildren = false ;
1399- if ( isFirstColOfTree )
1400- {
1401- var treeItem = TreeNodeCache . Find ( TreeRows , item , out degree ) ;
1402- if ( treeItem != null )
1403- {
1404- isExpand = treeItem . IsExpand ;
1405- hasChildren = treeItem . HasChildren ;
1406- }
1407- }
1408- var hasTreeChildren = isFirstColOfTree && hasChildren ;
1382+ // 获得单元格参数
1383+ var cellArgs = GetCellArgs ( item , col , ref colIndex ) ;
1384+
1385+ // 获得树节点信息
1386+ var ( isTreeCol , degree , isExpand , hasChildren ) = GetTreeInfo ( item , index ++ ) ;
1387+ var hasTreeChildren = isTreeCol && hasChildren ;
1388+
14091389 var context = new TableContentCellContext < TItem > ( )
14101390 {
14111391 Item = item ,
1412- ColSpan = colSpan ,
14131392 Col = col ,
1414- CellClass = cellClass ,
1393+ Colspan = cellArgs . Colspan ,
1394+ CellClass = cellArgs . Class ,
1395+ Value = cellArgs . Value ,
1396+ ValueTemplate = cellArgs . ValueTemplate ,
14151397 HasTreeChildren = hasTreeChildren ,
14161398 IsInCell = isInCell ,
14171399 Degree = degree ,
14181400 IsExpand = isExpand ,
1419- IsFirstColOfTree = isFirstColOfTree ,
1420- ValueTemplate = valueTemplate ,
1421- Value = value
1401+ IsFirstColOfTree = isTreeCol
14221402 } ;
14231403
14241404 builder . AddContent ( 0 , RenderContentCell ( context ) ) ;
14251405 }
14261406 } ;
14271407
1408+ private static TableCellArgs GetCellArgs ( TItem item , ITableColumn col , ref int colIndex )
1409+ {
1410+ var cell = new TableCellArgs { Row = item , ColumnName = col . GetFieldName ( ) } ;
1411+ col . OnCellRender ? . Invoke ( cell ) ;
1412+ colIndex = cell . Colspan ;
1413+ return cell ;
1414+ }
1415+
1416+ private ( bool isFirstColOfTree , int degree , bool isExpand , bool hasChildren ) GetTreeInfo ( TItem item , int index )
1417+ {
1418+ var isFirstColOfTree = IsTree && index == 0 ;
1419+ if ( ! isFirstColOfTree )
1420+ {
1421+ return ( false , 0 , false , false ) ;
1422+ }
1423+
1424+ var treeItem = TreeNodeCache . Find ( TreeRows , item , out var degree ) ;
1425+ return ( isFirstColOfTree ,
1426+ degree ,
1427+ treeItem ? . IsExpand ?? false ,
1428+ treeItem ? . HasChildren ?? false ) ;
1429+ }
1430+
14281431 /// <summary>
14291432 /// 渲染单元格方法
14301433 /// </summary>
0 commit comments