コード例 #1
0
        /// <summary>
        /// Добавить кнопку удаления в сплывающее меню
        /// </summary>
        private void DeleteButtonInPopupMenu()
        {
            if (!OptionsCustomization.AllowDelete)
            {
                //                var item = CustomPopupMenu.ItemLinks
                //                    .OfType<BarButtonItemLink>()
                //                    .FirstOrDefault(l => l.Item == ButtonRemove);
                //                if (item != null)
                //                    CustomPopupMenu.ItemLinks.Remove(item);
                ButtonRemove.Enabled = false;
                return;
            }
            var erg = new EventRowHandlerArgs(InvalidRowHandle);

            DoCheckDeleteRow.Raise(this, erg);
            if (erg.Cancel)
            {
                return;
            }
            if (ButtonRemove.Links.Count == 0)
            {
                CustomPopupMenu.ItemLinks.Add(ButtonRemove);
            }
            ButtonRemove.Enabled = SelectedRowsCount != 0;
        }
コード例 #2
0
        /// <summary>
        ///     Кастомное изображение на столбце индикатора
        /// </summary>
        public void ImageCustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
        {
            var view = (CommonGridView)sender;

            if (e.RowHandle < 0 || view.IndicatorImage == null)
            {
                return;
            }
            var erg = new EventRowHandlerArgs(e.RowHandle);

            view.DoCheckBeforeDrawIndicator.Raise(this, erg);
            if (erg.Cancel)
            {
                return;
            }
            e.Info.ImageIndex = -1;
            e.Painter.DrawObject(e.Info);
            var r = e.Bounds;

            r.Inflate(-1, -1);
            var x = r.X + (r.Width - view.IndicatorImage.Size.Width) / 2;
            var y = r.Y + (r.Height - view.IndicatorImage.Size.Height) / 2;

            e.Graphics.DrawImageUnscaled(view.IndicatorImage, x, y);
            e.Handled = true;
        }
コード例 #3
0
        /// <summary>
        /// Проверка таблицы на возможность удаления данных и удаление выделенных строк
        /// </summary>
        public void RemoveRowsButtonClick()
        {
            if (!OptionsCustomization.AllowDelete || State != GridState.Normal)
            {
                return;
            }
            var erg = new EventRowHandlerArgs(InvalidRowHandle);

            DoCheckDeleteRow.Raise(this, erg);
            if (erg.Cancel)
            {
                return;
            }
            if (OptionsCustomization.AllowSelectionColumn && SelectedRowsCount == 0)
            {
                MessageWindow.GetInstance("Выберите записи, которые хотите удалить", MessageType.Info);
                return;
            }
            if (XtraMessageBox.Show(MsgDelete, "Удаление данных",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
            {
                return;
            }
            var data = GetSelectedObjectRows();

            if (DoBeforeDeleteRow != null && !DoBeforeDeleteRow(data))
            {
                return;
            }
            if (OptionsCustomization.AllowSelectionColumn)
            {
                DeleteSelectedRows();
            }
            else
            {
                DeleteRow(FocusedRowHandle);
            }
            if (DoAfterDeleteRow != null)
            {
                DoAfterDeleteRow(data);
            }
            else
            {
                var form = GridControl.FindForm() as CommonChildForm;
                if (form != null && form.CheckDBContext(data))
                {
                    form.DeleteFromDBContext(data);
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Добавить кнопку добавления в сплывающее меню
        /// </summary>
        private void AddButtonInPopupMenu()
        {
            if (!OptionsCustomization.AllowAdd)
            {
                ButtonAddRow.Enabled = false;
                //                var item = CustomPopupMenu.ItemLinks
                //                    .OfType<BarButtonItemLink>()
                //                    .FirstOrDefault(l => l.Item == ButtonRemove);
                //                if(item != null)
                //                    CustomPopupMenu.ItemLinks.Remove(item);
                return;
            }
            var erg = new EventRowHandlerArgs(InvalidRowHandle);

            DoCheckAddRow.Raise(this, erg);
            if (erg.Cancel)
            {
                return;
            }
            if (OptionsCustomization.AllowAdd && ButtonAddRow.Links.Count == 0)
            {
                CustomPopupMenu.ItemLinks.Add(ButtonAddRow);
            }
        }
コード例 #5
0
 /// <summary>
 /// Изменить значение у выделенных строк данной колонки
 /// </summary>
 /// <param name="column">Колонка, для которой необходимо изменить значение</param>
 /// <param name="value">Значение, на которое мы меняем</param>
 private void ChangeSelectedRowValue(GridColumn column, object value)
 {
     BeginDataUpdate();
     try
     {
         foreach (var rowHandle in GetSelectedRows())
         {
             if (CheckRowBeforeChangeValue != null)
             {
                 var erg = new EventRowHandlerArgs(rowHandle);
                 CheckRowBeforeChangeValue.Raise(this, erg);
                 if (erg.Cancel)
                 {
                     continue;
                 }
             }
             SetRowCellValue(rowHandle, column, value);
         }
     }
     finally
     {
         EndDataUpdate();
     }
 }
コード例 #6
0
 /// <summary>
 /// Проверка таблицы на возможность добавления данных и добавление новой строки
 /// </summary>
 public void AddRowButtonClick()
 {
     if (!OptionsCustomization.AllowAdd)
     {
         return;
     }
     try
     {
         //BeginDataUpdate();
         var erg = new EventRowHandlerArgs(InvalidRowHandle);
         DoCheckAddRow.Raise(this, erg);
         if (erg.Cancel)
         {
             return;
         }
         erg = new EventRowHandlerArgs(InvalidRowHandle);
         DoBeforeAddRow.Raise(this, erg);
         if (erg.Cancel)
         {
             return;
         }
         object item = null;
         if (DoInsteadAddRow != null)
         {
             item = DoInsteadAddRow();
         }
         else
         {
             var bs = DataSource as BindingSource;
             if (bs != null)
             {
                 item = bs.AddNew();
             }
             else
             {
                 AddNewRow();
             }
         }
         if (DoAfterAddRow == null)
         {
             if (item == null || !item.GetType().FullName.Contains("ServerInformation"))
             {
                 return;
             }
             var form = GridControl.FindForm() as CommonChildForm;
             if (form != null)
             {
                 form.AddToDBContext(item);
             }
             return;
         }
         if (item != null)
         {
             DoAfterAddRow(item);
             return;
         }
         var rowHandle = GetRowHandle(DataRowCount);
         if (IsNewItemRow(rowHandle))
         {
             DoAfterAddRow(GetRow(rowHandle));
         }
     }
     finally
     {
         //EndDataUpdate();
     }
 }
コード例 #7
0
        private void RoleDoCheckBeforeDrawIndicator(object sender, EventRowHandlerArgs e)
        {
            var role = (Role)((GridView)sender).GetRow(e.RowHandler);

            e.Cancel = role == null || !role.IsAdmin;
        }
コード例 #8
0
        private void CheckBeforeDrawImage(object sender, EventRowHandlerArgs e)
        {
            var user = (User)((GridView)sender).GetRow(e.RowHandler);

            e.Cancel = user == null || !user.IsLocked;
        }