void GridView_HiddenEditor(object sender, EventArgs e) { if (lookupEdit != null) { lookupEdit.QueryPopUp -= lookupEdit_QueryPopUp; lookupEdit = null; } if (popupCriteriaEdit != null) { popupCriteriaEdit.ButtonClick -= popupCriteriaEdit_ButtonClick; popupCriteriaEdit = null; } }
void GridView_ShowingEditor(object sender, CancelEventArgs e) { var gridView = (DevExpress.XtraGrid.Views.Grid.GridView)sender; lookupEdit = gridView.FocusedColumn.ColumnEdit as RepositoryItemLookupEdit; if (lookupEdit != null) { lookupEdit.QueryPopUp += lookupEdit_QueryPopUp; } popupCriteriaEdit = gridView.FocusedColumn.ColumnEdit as RepositoryItemPopupCriteriaEdit; if (popupCriteriaEdit != null) { popupCriteriaEdit.ButtonClick += popupCriteriaEdit_ButtonClick; } }
private void GridView_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) { if (e.RowHandle < 0) { return; } var view = sender as GridView; if (view == null) { return; } if (e.Column.FieldName != nameof(QueryParameter.ParameterValue)) { return; } var parameter = view.GetRowCellValue(e.RowHandle, nameof(QueryParameter.ParameterName)).ToString().ToLower(); var type = _items.FirstOrDefault(x => x.Key.ToString().ToLower() == parameter).Value; switch (type) { case DataTypeEnnum.Enum: var currentParameter = View.CollectionSource.List.OfType <QueryParameter>().FirstOrDefault(x => x.ParameterName == parameter); var enumTypeString = currentParameter?.EnumType; if (enumTypeString != null) { var enumType = Type.GetType(enumTypeString.Name); var enumEditor = new RepositoryItemEnumEdit(enumType); e.RepositoryItem = enumEditor; } break; case DataTypeEnnum.Datetime: var dateEditor = new RepositoryItemDateTimeEdit(HS.ReportCustomDateTimeFormat, HS.ReportCustomDateTimeFormat); e.RepositoryItem = dateEditor; break; case DataTypeEnnum.Text: e.RepositoryItem = new RepositoryItemStringEdit(); break; case DataTypeEnnum.Integer: e.RepositoryItem = new RepositoryItemIntegerEdit("", "{d:0}"); break; case DataTypeEnnum.BusinessObject: var businessObject = (View.CollectionSource.List[e.RowHandle] as QueryParameter)?.BusinessObjectType; if (businessObject == null) { return; } IModelMemberViewItem targetType = View.Model.Columns[nameof(QueryParameter.BusinessObjectType)]; var lookupEditorHelper = new LookupEditorHelper(Application, ObjectSpace, XafTypesInfo.Instance.FindTypeInfo(businessObject), targetType); var editor = new RepositoryItemLookupEdit(); editor.Init(View.Items.First(), string.Empty, lookupEditorHelper); e.RepositoryItem = editor; break; default: return; } }