protected override void RaiseQueryPopUp(CancelEventArgs e) { if (CheckReadOnly()) { e.Cancel = true; return; } SetDataSource(this, new EventArgs()); if (ListHandler != null && !(ListHandler is EmptyLookupListHandler) && !ListHandler.ReadOnly) { base.RaiseQueryPopUp(e); //Modus mit ListHandler DataSource DisplayMember = ListHandler.ValuePropertyName; ValueMember = ListHandler.ValuePropertyName; DataSource = ListHandler.GetList(); if (Columns.Count == 0) { PopulateColumns(); foreach (LookUpColumnInfo colInfo in Columns) { if (ListHandler.VisibleProperties.HasProperty(colInfo.FieldName)) { var property = ListHandler.VisibleProperties.GetProperty(colInfo.FieldName); colInfo.Caption = property.DisplayName; switch (property.SortOrder) { case ESortDirection.Ascending: colInfo.SortOrder = ColumnSortOrder.Ascending; break; case ESortDirection.Descending: colInfo.SortOrder = ColumnSortOrder.Descending; break; case ESortDirection.None: colInfo.SortOrder = ColumnSortOrder.None; break; default: colInfo.SortOrder = ColumnSortOrder.None; break; } colInfo.Visible = property.Visible; } else { colInfo.Visible = false; } } } var list = DataSource as IList; if (list != null && (DataSource != null && list.Count < 10)) { DropDownRows = (DataSource as IList).Count + 1; } } else { //ListHandler not set or readonly mode e.Cancel = true; } }
protected override void RaiseQueryPopUp(CancelEventArgs e) { View.OptionsView.ShowAutoFilterRow = true; SetDataSource(this, new EventArgs()); if (ListHandler != null && !(ListHandler is EmptyLookupListHandler) && !ListHandler.ReadOnly) { base.RaiseQueryPopUp(e); // Wenn im Designer Display/Value Member gesetzt wurden dann diese nehmen. // Ein aufrufendes Form hat evtl. nicht den ganzen Lookuptyp als Property Implementiert sondern nur eine string oder int Property // Beispiel Refcode (Display Member = RvMeaning -> Anzeige, ValueMember = RvAbbreviation -> Wert der in die Property zurückgeschrieben wird. if (string.IsNullOrEmpty(DisplayMember)) { DisplayMember = ListHandler.ValuePropertyName; } if (string.IsNullOrEmpty(ValueMember)) { ValueMember = ListHandler.ValuePropertyName; } DataSource = ListHandler.GetList(); View.GridControl.ForceInitialize(); ListHandler.VisibleProperties.GetProperties(true); foreach (GridColumn gc in View.Columns) { if (ListHandler.VisibleProperties.HasProperty(gc.FieldName)) { var property = ListHandler.VisibleProperties.GetProperty(gc.FieldName); gc.Caption = property.DisplayName; gc.VisibleIndex = ListHandler.VisibleProperties.IndexOf(property.Key); switch (property.SortOrder) { case ESortDirection.Ascending: gc.SortOrder = ColumnSortOrder.Ascending; break; case ESortDirection.Descending: gc.SortOrder = ColumnSortOrder.Descending; break; case ESortDirection.None: gc.SortOrder = ColumnSortOrder.None; break; default: gc.SortOrder = ColumnSortOrder.None; break; } switch (property.AutoFilterCondition) { case EAutoFilterCondition.Equals: gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Equals; break; case EAutoFilterCondition.Like: gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Like; break; case EAutoFilterCondition.Contains: gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains; break; default: gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Default; break; } gc.Visible = property.Visible; } else { gc.Visible = false; } } View.BestFitMaxRowCount = BestFitMaxRowCountValue; View.BestFitColumns(); } else { //ListHandler not set or readonly mode e.Cancel = true; } }