Exemplo n.º 1
0
        private static BvgCell GetCell(BvgRow row, BvgColumn col, T item, BvgGrid _bvgGrid, bool SetValue)
        {
            BvgCell cell = new BvgCell
            {
                bvgRow    = row,
                bvgColumn = col,
                HasCol    = true,
                bvgGrid   = _bvgGrid,
            };

            if (SetValue)
            {
                cell.Value = col.prop.GetValue(item, null).ToString();
            }


            if (col.IsFrozen)
            {
                cell.CssClass = CellStyle.CellFrozen.ToString();
            }
            else
            {
                cell.CssClass = CellStyle.CellNonFrozen.ToString();
            }

            cell.UpdateID();

            return(cell);
        }
Exemplo n.º 2
0
        public static void GetColumns(ColProp[] props, BvgGrid <T> _bvgGrid, T[] list, bool UpdateUI)
        {
            int h = _bvgGrid.bvgSettings.HeaderHeight - 10;

            if (!_bvgGrid.Columns.Any())
            {
                _bvgGrid.Columns = new BvgColumn <T> [props.Count()];
                for (ushort i = 0; i < props.Count(); i++)
                {
                    _bvgGrid.Columns[i] = getCol(i, props[i], h, _bvgGrid);
                }
            }
            else
            {
                _bvgGrid.Columns = new BvgColumn <T> [props.Count()];
                string[] UpdatePkg = new string[props.Count() * 4];
                short    j         = -1;
                for (ushort i = 0; i < props.Count(); i++)
                {
                    _bvgGrid.Columns[i] = getCol(i, props[i], h, _bvgGrid);

                    UpdatePkg[++j] = i.ToString();
                    UpdatePkg[++j] = props[i].prop.Name;
                    UpdatePkg[++j] = _bvgGrid.Columns[i].ColWidth.ToString();
                    UpdatePkg[++j] = _bvgGrid.Columns[i].ColWidthSpan.ToString();
                }

                if (_bvgGrid.Rows.Any())
                {
                    foreach (BvgRow <T> r in _bvgGrid.Rows)
                    {
                        foreach (BvgCell <T> c in r.Cells)
                        {
                            c.bvgColumn = _bvgGrid.Columns[c.bvgColumn.ID];
                        }
                    }
                }


                if (UpdateUI)
                {
                    BVirtualGridCJsInterop.UpdateColContentsBatch(UpdatePkg);
                    RefreshRows(list, _bvgGrid, true, 0);
                }
            }



            if (_bvgGrid.SortState.Item1)
            {
                if (_bvgGrid.Columns.Any(x => x.prop.Name.Equals(_bvgGrid.SortState.Item2)))
                {
                    BvgColumn <T> sortedCol2 = _bvgGrid.Columns.Single(x => x.prop.Name.Equals(_bvgGrid.SortState.Item2));

                    sortedCol2.IsSorted = true;
                    sortedCol2.IsAscendingOrDescending = _bvgGrid.SortState.Item3;
                }
            }
        }
Exemplo n.º 3
0
        private static BvgCell <T> GetCell(BvgRow <T> row, BvgColumn <T> col, T item, BvgGrid <T> _bvgGrid)
        {
            BvgCell <T> cell = new BvgCell <T>
            {
                bvgRow    = row,
                bvgColumn = col,
                bvgGrid   = _bvgGrid,
                Value     = col.prop.GetValue(item, null).ToString(),
                ID        = string.Concat("C", col.ID, "R", row.ID),
            };



            if (col.IsFrozen)
            {
                cell.CssClassBase = CellStyle.CF.ToString();
            }
            else
            {
                cell.CssClassBase = CellStyle.CNF.ToString();
            }

            return(cell);
        }
Exemplo n.º 4
0
        public static void GetColumns(ColProp[] props, BvgGrid _bvgGrid, T[] list, bool UpdateUI)
        {
            int h = _bvgGrid.bvgSettings.HeaderHeight - _bvgGrid.bvgSettings.HeaderStyle.BorderWidth * 2;

            if (!_bvgGrid.Columns.Any())
            {
                _bvgGrid.Columns = new BvgColumn[props.Count()];
                for (ushort i = 0; i < props.Count(); i++)
                {
                    _bvgGrid.Columns[i] = getCol(i, props[i], h, _bvgGrid);
                }
            }
            else
            {
                _bvgGrid.Columns = new BvgColumn[props.Count()];
                string[] UpdatePkg = new string[props.Count() * 4];
                short    j         = -1;
                for (ushort i = 0; i < props.Count(); i++)
                {
                    _bvgGrid.Columns[i] = getCol(i, props[i], h, _bvgGrid);

                    UpdatePkg[++j] = i.ToString();
                    UpdatePkg[++j] = props[i].prop.Name;
                    UpdatePkg[++j] = _bvgGrid.Columns[i].ColWidthDiv.ToString();
                    UpdatePkg[++j] = _bvgGrid.Columns[i].ColWidthSpan.ToString();
                }


                if (_bvgGrid.SortState.Item1)
                {
                    if (_bvgGrid.Columns.Any(x => x.prop.Name.Equals(_bvgGrid.SortState.Item2.prop.Name)))
                    {
                        BvgColumn sortedCol2 = _bvgGrid.Columns.Single(x => x.prop.Name.Equals(_bvgGrid.SortState.Item2.prop.Name));
                        sortedCol2.IsSorted = true;
                        sortedCol2.IsAscendingOrDescending = _bvgGrid.SortState.Item2.IsAscendingOrDescending;
                    }
                }


                if (_bvgGrid.Rows.Any())
                {
                    foreach (BvgRow r in _bvgGrid.Rows)
                    {
                        foreach (BvgCell c in r.Cells)
                        {
                            if (c.bvgColumn.ID < props.Count())
                            {
                                c.bvgColumn = _bvgGrid.Columns[c.bvgColumn.ID];
                                c.HasCol    = true;
                            }
                            else
                            {
                                c.HasCol = false;
                            }
                        }
                    }
                }


                if (UpdateUI)
                {
                    BvgJsInterop.UpdateColContentsBatch(UpdatePkg);
                    RefreshRows(list, _bvgGrid, true);
                }
            }
        }