/// <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; }
/// <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); }
/// <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(); } }
/// <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); } }
/// <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; }
/// <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(); } }
private void RoleDoCheckBeforeDrawIndicator(object sender, EventRowHandlerArgs e) { var role = (Role)((GridView)sender).GetRow(e.RowHandler); e.Cancel = role == null || !role.IsAdmin; }
private void CheckBeforeDrawImage(object sender, EventRowHandlerArgs e) { var user = (User)((GridView)sender).GetRow(e.RowHandler); e.Cancel = user == null || !user.IsLocked; }