예제 #1
0
        GridViewEventResult IGridViewEventListener.PreProcessEvent(
            GridViewEvent eventData)
        {
            if (eventData.Info.Id != KnownEvents.CurrentChanged)
            {
                return((GridViewEventResult)null);
            }
            if (eventData.Originator is RadDataView <GridViewRowInfo> )
            {
                if (this.IsInEditMode)
                {
                    return(new GridViewEventResult(true, true));
                }
                return((GridViewEventResult)null);
            }
            PositionChangingEventArgs args = new PositionChangingEventArgs(eventData.Arguments[0] as GridViewRowInfo, eventData.Arguments[1] as GridViewColumn);

            this.OnPositionChanging(args);
            if (args.Cancel)
            {
                return(new GridViewEventResult(false, true));
            }
            return((GridViewEventResult)null);
        }
예제 #2
0
        protected virtual void OnPositionChanging(PositionChangingEventArgs args)
        {
            GridViewRowInfo currentRow    = this.gridViewElement.Template.CurrentRow;
            GridViewColumn  currentColumn = currentRow?.ViewTemplate.CurrentColumn;

            this.oldRowIsNewRow = false;
            if (this.IsInEditMode)
            {
                if (!this.endEditCore)
                {
                    args.Cancel = !this.CloseEditor();
                }
                this.wasInEditMode = this.GridViewElement.BeginEditMode != RadGridViewBeginEditMode.BeginEditProgrammatically;
            }
            else
            {
                object oldValue = currentRow == null || currentColumn == null ? (object)null : currentRow[currentColumn];
                object newValue = oldValue;
                if (this.RaiseCellValidatingEvent(currentRow, currentColumn, newValue, oldValue))
                {
                    args.Cancel = true;
                    return;
                }
                this.RaiseCellValidatedEvent(currentRow, currentColumn, newValue);
            }
            if (!args.Cancel && args.Row != currentRow)
            {
                args.Cancel         = !this.FinishEditingOperation();
                this.oldRowIsNewRow = currentRow is GridViewNewRowInfo;
            }
            if (!args.Cancel)
            {
                return;
            }
            this.wasInEditMode = false;
        }