예제 #1
0
        private static int GetRowsCount(RenderContext context, BaseColumn c)
        {
            if (!c.IsCrossColumn)
            {
                return(c.GetRowsCount(context.OtherColumns[c.ColumnName]));
            }

            var crossColumnNames = c.BaseCrossColumnDataSource.GetCrossColumnNames().ToList();

            if (crossColumnNames.Count == 0)
            {
                return(0);
            }

            return(crossColumnNames.Max(n => c.GetRowsCount(context.OtherColumns[n])));
        }
        private int GetRowsCount(RenderContext context, BaseColumn c, Func <RenderContext, BaseColumn, bool> where)
        {
            if (CrossColumnDataSource != null)
            {
                return(CrossColumnDataSource.GetRowsCount(context));
            }

            if (!c.IsCrossColumn)
            {
                if (where == null || where (context, c))
                {
                    var columnName = c.ColumnName;
                    return(c.GetRowsCount(context.OtherColumns[columnName]));
                }

                return(0);
            }

            var contexts         = c.BaseCrossColumnDataSource.GetCrossColumnNames().Select(columnName => context.OtherColumns[columnName]);
            var crossColumnNames = where == null
                                       ? contexts.ToList()
                                       : contexts.Where(renderContext => where (renderContext, renderContext.Column)).ToList();

            if (crossColumnNames.Count == 0)
            {
                return(0);
            }

            return(crossColumnNames.Max(renderContext => renderContext.Column.GetRowsCount(renderContext)));
        }
 private int GetRowsCount(RenderContext context)
 {
     cloneColumn.DependenceColumns(context, baseColumn);
     return(baseColumn.GetRowsCount(context.OtherColumns[baseColumn.ColumnName]));
 }