private void radBtnAdvanceApply_Click(object sender, EventArgs e)
        {
            this.gridView.EndEdit();

            GridTableElement       tableElement   = this.gridView.TableElement;
            MasterGridViewTemplate masterTemplate = this.gridView.MasterTemplate;

            tableElement.BeginUpdate();
            this.gridView.EnableCustomFiltering = false;
            masterTemplate.DataView.Refresh();
            tableElement.EndUpdate(false);

            foreach (GridViewRowInfo row in this.gridView.Rows)
            {
                foreach (GridViewCellInfo cell in row.Cells)
                {
                    cell.Style.Reset();
                }
            }

            this.gridView.FilterDescriptors.BeginUpdate();
            this.gridView.FilterDescriptors.Clear();
            FilterDescriptor descriptor = this.advancedFilterDescriptor.Clone() as FilterDescriptor;

            this.gridView.FilterDescriptors.Add(descriptor);
            this.gridView.FilterDescriptors.EndUpdate();
        }
예제 #2
0
 protected virtual void OnPropertyChanging(PropertyChangingEventArgsEx args)
 {
     if (this.ViewTemplate != null && this.ViewTemplate.MasterTemplate != null)
     {
         MasterGridViewTemplate masterTemplate = this.ViewTemplate.MasterTemplate;
         if (args.PropertyName == "IsCurrent")
         {
             args.Cancel = this.OnIsCurrentPropertyChanging(args);
         }
         else if (args.PropertyName == "IsSelected")
         {
             if ((bool)args.NewValue && (!this.CanBeSelected || masterTemplate.SelectionMode != GridViewSelectionMode.FullRowSelect))
             {
                 args.Cancel = true;
             }
         }
         else if (args.PropertyName == "Height")
         {
             args.Cancel = this.OnHeightPropertyChanging(args);
         }
     }
     if (this.PropertyChanging == null)
     {
         return;
     }
     this.PropertyChanging((object)this, args);
 }
        public static void RaiseCurrentChanged(
            GridViewTemplate template,
            GridViewRowInfo row,
            GridViewColumn column,
            bool user)
        {
            if (template == null)
            {
                throw new ArgumentNullException("Template");
            }
            MasterGridViewTemplate masterTemplate = template.MasterTemplate;

            if (masterTemplate == null)
            {
                return;
            }
            GridViewEventInfo eventInfo  = new GridViewEventInfo(KnownEvents.CurrentChanged, GridEventType.Both, GridEventDispatchMode.Send);
            object            originator = user ? (object)(RadCollectionView <GridViewRowInfo>)null : (object)template.DataView;

            masterTemplate.SynchronizationService.DispatchEvent(new GridViewEvent((object)template, originator, new object[2]
            {
                (object)row,
                (object)column
            }, eventInfo));
        }
예제 #4
0
        private void cutItem_Click(object sender, EventArgs e)
        {
            MasterGridViewTemplate masterTemplate = this.ViewTemplate.MasterTemplate;

            masterTemplate.BeginRowCopy();
            this.ViewTemplate.MasterTemplate.Cut();
            masterTemplate.EndRowCopy();
        }
 public GridViewSelectedCellsCollection(MasterGridViewTemplate masterTemplate)
     : base(new ObservableCollection <GridViewCellInfo>())
 {
     this.masterTemplate = masterTemplate;
     this.hashtable      = new Hashtable();
     this.ObservableItems.CollectionChanged += new NotifyCollectionChangedEventHandler(this.ObservableItems_CollectionChanged);
     this.selectedRows = new Hashtable();
 }
예제 #6
0
 protected override void InitializeFields()
 {
     base.InitializeFields();
     this.StretchHorizontally = true;
     this.StretchVertically   = true;
     this.services            = new Dictionary <string, RadService>();
     this.RegisterService((RadService) new RadGridViewDragDropService(this));
     this.template = this.CreateTemplate();
     this.template.SynchronizationService.AddListener((IGridViewEventListener)this);
     this.template.PropertyChanged += new PropertyChangedEventHandler(this.Template_PropertyChanged);
 }
 void EditorControl_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
 {
     try
     {
         MasterGridViewTemplate template = (MasterGridViewTemplate)sender;
         template.Columns["Id"].IsVisible = false;
         template.Columns["Name"].Width   = 80;
     }
     catch (Exception ex)
     {
     }
 }
        public static bool IsEventSuspended(GridViewTemplate template, KnownEvents eventId)
        {
            if (template == null)
            {
                throw new ArgumentNullException("Template");
            }
            MasterGridViewTemplate masterTemplate = template.MasterTemplate;

            if (masterTemplate != null)
            {
                return(masterTemplate.SynchronizationService.IsEventSuspended(eventId));
            }
            return(false);
        }
        private void radTextBoxSearch_TextChanged(object sender, EventArgs e)
        {
            this.gridView.EndEdit();

            GridTableElement       tableElement   = this.gridView.TableElement;
            MasterGridViewTemplate masterTemplate = this.gridView.MasterTemplate;

            tableElement.BeginUpdate();
            this.gridView.FilterDescriptors.Clear();
            this.gridView.EnableCustomFiltering = true;
            masterTemplate.DataView.Refresh();
            tableElement.EndUpdate(false);

            this.gridView.TableElement.ViewElement.UpdateRows(true);
        }
        private void CorrectScrollbarRangeInHierarchy()
        {
            GridTableElement       tableElement    = ((RowsContainerElement)this.Parent).TableElement;
            RadGridViewElement     gridViewElement = tableElement.GridViewElement;
            RadScrollBarElement    vscrollBar      = tableElement.VScrollBar;
            MasterGridViewTemplate masterTemplate  = tableElement.MasterTemplate;

            if (masterTemplate == null || masterTemplate.Templates.Count == 0 || (gridViewElement.UseScrollbarsInHierarchy || tableElement.ViewInfo.ParentRow != null) || (this.Children.Count == 0 || vscrollBar.Value < vscrollBar.Maximum - vscrollBar.LargeChange + 1))
            {
                return;
            }
            GridDetailViewRowElement child1 = this.Children[this.Children.Count - 1] as GridDetailViewRowElement;

            if (child1 == null || child1.ContentCell.ChildTableElement.ViewInfo == null)
            {
                return;
            }
            ScrollableRowsContainerElement scrollableRows = child1.ContentCell.ChildTableElement.ViewElement.ScrollableRows;
            int           count         = scrollableRows.Children.Count;
            GridTraverser gridTraverser = new GridTraverser(child1.ContentCell.ChildTableElement.ViewInfo);

            gridTraverser.TraversalMode = GridTraverser.TraversalModes.ScrollableRows;
            int num1 = 0;

            while (gridTraverser.MoveNext())
            {
                ++num1;
                if (num1 > count)
                {
                    int height = (int)child1.ContentCell.ChildTableElement.RowElementProvider.GetElementSize(gridTraverser.Current).Height;
                    tableElement.RowScroller.UpdateScrollRange(vscrollBar.Maximum + height, false);
                    return;
                }
            }
            if (scrollableRows.Children.Count <= 0)
            {
                return;
            }
            GridRowElement child2 = (GridRowElement)scrollableRows.Children[scrollableRows.Children.Count - 1];

            if (child2.ControlBoundingRectangle.Bottom <= scrollableRows.ControlBoundingRectangle.Bottom)
            {
                return;
            }
            int num2 = child2.ControlBoundingRectangle.Bottom - scrollableRows.ControlBoundingRectangle.Bottom;

            tableElement.RowScroller.UpdateScrollRange(vscrollBar.Maximum + num2, false);
        }
예제 #11
0
        public virtual void InitializeGrid(RadGridView grid, bool SetAnotherTheme = false)
        {
            Grid = grid;
            if (SetAnotherTheme)
            {
                Grid.ThemeName = ThemeForGrid.ThemeName;
            }
            MGridViewTemplate = Grid.MasterTemplate;
            SetDataViewControlProperties();
            Grid.CellEditorInitialized += EventCellEditorInitialized;

            // TODO: Раскомментируйте если не нравится цвет выделенной строки и ячейки
            // Эти две строчки можно добавить в коде наследника класса, а здесь оставить их в виде комментариев
            // Grid.RowFormatting += new RowFormattingEventHandler(EventRowFormatting);
            // Grid.CellFormatting += new CellFormattingEventHandler(EventCellFormatting);
        }
예제 #12
0
        private bool OnIsCurrentPropertyChanging(PropertyChangingEventArgsEx args)
        {
            if (GridViewSynchronizationService.IsEventSuspended(this.ViewTemplate, KnownEvents.CurrentChanged))
            {
                return(false);
            }
            bool newValue = (bool)args.NewValue;

            if (newValue && !this.CanBeCurrent)
            {
                return(true);
            }
            GridViewRowInfo row    = newValue ? this : (GridViewRowInfo)null;
            GridViewColumn  column = this.ViewTemplate.CurrentColumn ?? MasterGridViewTemplate.GetColumnAllowingForCurrent(this.ViewTemplate);

            GridViewSynchronizationService.RaiseCurrentChanged(this.ViewTemplate, row, column, true);
            return(this.ViewTemplate.MasterTemplate.CurrentRow != row);
        }
예제 #13
0
        protected virtual void OnPropertyChanged(PropertyChangedEventArgs args)
        {
            if (args.PropertyName == "PinPosition")
            {
                this.ViewInfo.PinnedRows.UpdateRow(this);
            }
            else if (args.PropertyName == "IsSelected")
            {
                MasterGridViewTemplate masterTemplate = this.ViewTemplate.MasterTemplate;
                if (masterTemplate != null && masterTemplate.SelectionMode == GridViewSelectionMode.FullRowSelect)
                {
                    if (this.IsSelected)
                    {
                        masterTemplate.SelectedRows.BeginUpdate();
                        if (!masterTemplate.MultiSelect)
                        {
                            masterTemplate.SelectedRows.Clear();
                        }
                        masterTemplate.SelectedRows.Add(this, true);
                        masterTemplate.SelectedRows.EndUpdate(true);
                    }
                    else
                    {
                        masterTemplate.SelectedRows.Remove(this);
                    }
                }
            }
            else if (args.PropertyName == "Height" || args.PropertyName == "MinHeight" || args.PropertyName == "MaxHeight")
            {
                RowHeightChangedEventArgs args1 = new RowHeightChangedEventArgs(this);
                this.ViewTemplate.MasterTemplate.EventDispatcher.RaiseEvent <RowHeightChangedEventArgs>(EventDispatcher.RowHeightChanged, (object)this, args1);
            }
            GridEventDispatchMode dispatchMode = GridEventDispatchMode.Send;

            this.DispatchEvent(KnownEvents.PropertyChanged, this.GetEventInfo(args as GridPropertyChangedEventArgs, out dispatchMode), dispatchMode, (object)null, new object[1]
            {
                (object)args
            });
            if (this.PropertyChanged == null)
            {
                return;
            }
            this.PropertyChanged((object)this, args);
        }
예제 #14
0
        private IEnumerable <GridViewRowInfo> GetRowsForPin()
        {
            MasterGridViewTemplate masterTemplate = this.MasterTemplate;

            if (this.MasterTemplate.SelectionMode == GridViewSelectionMode.FullRowSelect)
            {
                foreach (GridViewRowInfo selectedRow in (ReadOnlyCollection <GridViewRowInfo>)masterTemplate.SelectedRows)
                {
                    yield return(selectedRow);
                }
            }
            else
            {
                foreach (GridViewCellInfo selectedCell in (ReadOnlyCollection <GridViewCellInfo>)masterTemplate.SelectedCells)
                {
                    yield return(selectedCell.RowInfo);
                }
            }
        }
        public static void DispatchEvent(
            GridViewTemplate template,
            GridViewEvent eventData,
            bool postUI)
        {
            if (template == null)
            {
                throw new ArgumentNullException("Template");
            }
            MasterGridViewTemplate masterTemplate = template.MasterTemplate;

            if (masterTemplate == null)
            {
                return;
            }
            GridViewSynchronizationService synchronizationService = masterTemplate.SynchronizationService;

            if (synchronizationService == null)
            {
                return;
            }
            if (eventData.Info.Type == GridEventType.Both && postUI)
            {
                KnownEvents       id         = eventData.Info.Id;
                bool              critical   = eventData.Info.Critical;
                object[]          arguments  = eventData.Arguments;
                object            sender     = eventData.Sender;
                object            originator = eventData.Originator;
                GridViewEventInfo eventInfo1 = new GridViewEventInfo(id, GridEventType.Data, GridEventDispatchMode.Send, critical);
                GridViewEvent     gridEvent1 = new GridViewEvent(sender, originator, arguments, eventInfo1);
                GridViewEventInfo eventInfo2 = new GridViewEventInfo(id, GridEventType.UI, GridEventDispatchMode.Post, critical);
                GridViewEvent     gridEvent2 = new GridViewEvent(sender, originator, arguments, eventInfo2);
                synchronizationService.DispatchEvent(gridEvent1);
                synchronizationService.DispatchEvent(gridEvent2);
            }
            else
            {
                synchronizationService.DispatchEvent(eventData);
            }
        }