public WebMultipleValuesColumnFilter() { _storage = new ColumnFilterStorage(); _storage.DataType = typeof(Int64); _storage.AvailableFilters = ColumnFilterType.In | ColumnFilterType.Equal | ColumnFilterType.None; PanelHeight = Unit.Pixel(380); }
public override IMultipleValuesColumnFilter CreateMultipleValuesColumnFilter(ColumnFilterStorage storage) { WebMultipleValuesColumnFilter webMultipleValuesColumnFilter = new WebMultipleValuesColumnFilter(); webMultipleValuesColumnFilter.SetStorage(storage); return(webMultipleValuesColumnFilter); }
private void OnCheckBoxForFilterConditionOnCheckedChanged(object sender, EventArgs args) { var condition = tableDataSource.View.CustomConditions.FirstOrDefault(r => r.ColumnName == CheckedFilterCondition); if (condition == null) { return; } var control = (DropDownList)controls[0]; var value = control.SelectedValue; control.SelectedValue = null; condition.EmptyCondition = checkBoxForFilterCondition.Checked; control.DataBind(); var item = control.Items.FindByValue(value); if (item != null) { control.SelectedValue = value; ColumnFilterStorage.SetValue(0, null); OnColumnFilterStorageChanged(); } storageChanged = true; }
public static Dictionary <string, object> CreateConstants(List <BaseReportCondition> conditions, List <List <BaseReportCondition> > circleFillConditions, bool addFilterType) { var contants = new Dictionary <string, object>(); foreach (BaseReportCondition condition in conditions) { ColumnFilterStorage storage = condition.ColumnFilter.GetStorage(); contants[storage.Name] = BuildConstants(condition, storage, addFilterType); } if (circleFillConditions != null) { var i = 0; foreach (List <BaseReportCondition> circleFillCondition in circleFillConditions) { foreach (BaseReportCondition condition in circleFillCondition) { ColumnFilterStorage storage = condition.ColumnFilter.GetStorage(); if (i == 0) { contants.Add(storage.Name, new object[circleFillConditions.Count]); } var m = (object[])contants[storage.Name]; m[i] = BuildConstants(condition, storage, addFilterType); } i++; } } return(contants); }
public void SetStorage(ColumnFilterStorage storage) { Data data = _values[storage.Name] as Data; if (data != null) { Boolean filterValid = true; if (!EnumHelper.Contains(data.filterType, storage.AvailableFilters)) { filterValid = false; } if (filterValid) { for (int i = 0; i != data.values.Length; i++) { if (data.values[i] == null || data.values[i].GetType() != storage.DataType) { filterValid = false; break; } } } Debug.Write(filterValid, "User filter configuration not valid"); if (filterValid) { storage.FilterType = data.filterType; storage.Values = data.values; } } }
public override IColumnFilter CreateColumnFilter(ColumnFilterStorage storage) { ColumnFilter columnFilter = new ColumnFilter(); columnFilter.SetStorage(storage); return(columnFilter); }
private static object[] BuildConstants(BaseReportCondition condition, ColumnFilterStorage storage, bool addFilterType) { List <object> constants; if (storage.IsRefBound) { if (storage.FilterType.IsBinaryFilter()) { try { constants = new List <object> { condition.ColumnFilter.GetText(0), condition.ColumnFilter.GetText(1) }; } catch (NotImplementedException) { constants = new List <object> { storage.Value1, storage.Value2 }; } } else { try { constants = new List <object> { condition.ColumnFilter.GetText(0) }; } catch (NotImplementedException) { constants = new List <object> { storage.Value1 }; } } } else { constants = storage.FilterType.IsBinaryFilter() ? new List <object> { storage.Value1, storage.Value2 } : new List <object> { storage.Value1 }; } if (addFilterType) { constants.Insert(0, storage.FilterType); } return(constants.ToArray()); }
/// <summary> /// Возвращает идентификаторы html-элементов, в которые осуществляется ввод данных. /// </summary> /// <returns></returns> public IEnumerable <DefaultFilterValues> GetInputElements() { List <DefaultFilterValues> list; this.EnsureChildControls(); if (ColumnFilterStorage.DataType == typeof(DateTime) || (ColumnFilterStorage.IsRefBound && ColumnFilterStorage.RefTableRolledIn)) { list = controls .OfType <IClientElementProvider>() .SelectMany(r => r.GetInputElements()) .Select((r, index) => new DefaultFilterValues { ClientId = r, Value = DefaultValues == null || DefaultValues.Length <= index ? null : DefaultValues[index], }) .ToList(); } else { list = controls.Where(r => r != null) .Select((r, index) => new DefaultFilterValues { ClientId = r.ClientID, Value = DefaultValues == null || DefaultValues.Length <= index ? null : DefaultValues[index], }) .ToList(); } if (DefaultFilterType != ColumnFilterType.NotSet) { list.Add( new DefaultFilterValues { ClientId = dropDownList.ClientID, Value = ((int)DefaultFilterType).ToString(), }); } else { list.Add( new DefaultFilterValues { ClientId = dropDownList.ClientID, Value = ColumnFilterStorage.GetDefaultFilterTypesArray().Select(r => (int)r).Min().ToString(), }); } return(list); }
public void AddStorage(ColumnFilterStorage storage, string[] textValues) { var existValue = _values.ContainsKey(storage.Name) ? (Data)_values[storage.Name] : null; if (existValue == null || (storage.Values != null && storage.Values.Any(r => r != null) && (storage.FilterType == ColumnFilterType.In || storage.FilterType != ColumnFilterType.In && storage.FilterType != ColumnFilterType.None))) { _values[storage.Name] = new Data(storage.Values, storage.FilterType, textValues); } }
private void UpdateStorage() { if (ColumnFilterStorage == null || dropDownList == null || dropDownList.SelectedItem == null) { return; } ColumnFilterStorage.FilterType = (ColumnFilterType)Convert.ToInt64(dropDownList.SelectedItem.Value); Int32 controlsCount = 0; if (ColumnFilterStorage.FilterType == ColumnFilterType.Between || ColumnFilterStorage.FilterType == ColumnFilterType.OutOf) { controlsCount = 2; filterRow.Cells[2].Style["display"] = ""; if (filterRow.Cells.Count > 3) { filterRow.Cells[3].Style["display"] = ""; } } else if (ColumnFilterStorage.FilterType != ColumnFilterType.None) { controlsCount = 1; filterRow.Cells[2].Style["display"] = ""; if (filterRow.Cells.Count > 3 && filterRow.Cells[3].ID != "fillEmpty") { filterRow.Cells[2].Width = Unit.Pixel((Int32)filterRow.Cells[3].Width.Value * 2 + 9); filterRow.Cells[3].Style["display"] = "none"; } } else { filterRow.Cells[2].Style["display"] = "none"; if (filterRow.Cells.Count > 3 && filterRow.Cells[3].ID != "fillEmpty") { filterRow.Cells[3].Style["display"] = "none"; } } if (ColumnFilterStorage.FilterType == ColumnFilterType.ContainsWords) { ColumnFilterStorage.Value = (GetValue(0) ?? "").ToString(); } else { for (int i = 0; i != controlsCount; i++) { ColumnFilterStorage.SetValue(i, GetValue(i)); } } OnColumnFilterStorageChanged(); }
/// <summary> /// Создание ColumnFilterStorage для выбора по текущему месяцу и году /// </summary> /// <param name="dataColumn">колонка</param> /// <returns>фильтр для колонки</returns> public static ColumnFilterStorage CreateFilterStorageOnCurrentMonth(DataColumn dataColumn) { var storageCaption = (string)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.CAPTION)); ColumnFilterStorage storage = null; if (dataColumn != null) { storage = new ColumnFilterStorage(dataColumn.ColumnName, storageCaption, typeof(DateTime), ColumnFilterType.Between, Convert.ToDateTime(GetIntervalDates().beginDate), Convert.ToDateTime(GetIntervalDates().endDate)); storage.AvailableFilters = storage.GetDefaultFilterTypes(); } return(storage); }
private void AddColumnFilter(ColumnFilterStorage columnFilterStorage) { var id = String.Format("{0}_ColumnFilterID", columnFilterStorage.Name.Replace(".", "_")); var columnFilter = new ColumnFilter { ID = id, PopupBehaviorParentNode = PopupBehaviorParentNode, SessionWorker = view.SessionWorker, ColumnFilterStorage = columnFilterStorage }; filterPanel.Controls.Add(columnFilter); columnFilters.Add(columnFilter); }
public void AddListStorage(ColumnFilterStorage storage, int index, string[] textValues) { Hashtable values; if (_valuesCircle.Count == index) { values = new Hashtable(); _valuesCircle.Add(values); } else { values = _valuesCircle[index]; } values.Add(storage.Name, new Data(storage.Values, storage.FilterType, textValues)); }
public void SetStorage(ColumnFilterStorage storage) { _storage = (ColumnFilterStorage)storage.Clone(); OnColumnFilterStorageChanged(); if (checkedIds != null) { if (_storage.Values == null || _storage.Values.Length == 0) { checkedIds.Value = ""; } else { checkedIds.Value = string.Join(",", _storage.Values.Select(Convert.ToString).ToArray()); } } }
public void SetListStorage(ColumnFilterStorage storage, int index) { Data data = _valuesCircle[index][storage.Name] as Data; if (data != null) { if (data.values == null) { storage.Values = new object[0]; } else { storage.Values = data.values; } storage.FilterType = data.filterType; } }
public Boolean Validate() { var args = new ValidateEventArgs(); ColumnFilterStorage.Validate(args); errorText = args.ErrorText; var eventArgs = new ValidateEventArgs(); OnFilterValidate(eventArgs); if (string.IsNullOrEmpty(errorText)) { errorText = eventArgs.ErrorText; } else { errorText += "\r\n" + eventArgs.ErrorText; } return(args.Valid && eventArgs.Valid); }
protected override DataTable GetDataTable(ColumnFilterStorage storage) { return(DataSourceHelper.GetDataTable(storage.RefDataSource)); }
private void UpdateControls() { dropDownList.SelectedValue = Convert.ToInt64(ColumnFilterStorage.FilterType).ToString(); Int32 controlsCount = 0; if (ColumnFilterStorage.FilterType == ColumnFilterType.Between || ColumnFilterStorage.FilterType == ColumnFilterType.OutOf) { controlsCount = 2; filterRow.Cells[2].Style["display"] = ""; if (filterRow.Cells.Count > 3) { filterRow.Cells[3].Style["display"] = ""; } } else if (ColumnFilterStorage.FilterType != ColumnFilterType.None) { controlsCount = 1; filterRow.Cells[2].Style["display"] = ""; if (ColumnFilterStorage.DataType == typeof(String) && !ColumnFilterStorage.IsRefBound) { filterRow.Cells[2].Width = Unit.Percentage(100); } else if (ColumnFilterStorage.DataType == typeof(DateTime)) { filterRow.Cells[2].Width = Unit.Pixel(110); filterRow.Cells[3].Width = Unit.Pixel(110); } else if (filterRow.Cells.Count > 3 && filterRow.Cells[3].ID != "fillEmpty") { filterRow.Cells[2].Width = Unit.Pixel((Int32)filterRow.Cells[3].Width.Value * 2 + 9); filterRow.Cells[3].Style["display"] = "none"; } } else { filterRow.Cells[2].Style["display"] = "none"; if (filterRow.Cells.Count > 3 && filterRow.Cells[3].ID != "fillEmpty") { filterRow.Cells[3].Style["display"] = "none"; } } if (ColumnFilterStorage.IsRefBound) { for (int i = 0; i != controlsCount; i++) { if (ColumnFilterStorage.RefTableRolledIn) { ((LookupTextBox)controls[i]).Value = ColumnFilterStorage.GetValue(i); } else { var selectedValue = ColumnFilterStorage.GetValue(i); var list = ((DropDownList)controls[i]); if (selectedValue != null) { var item = list.Items.FindByValue(Convert.ToString(selectedValue)); if (item != null) { list.SelectedValue = Convert.ToString(selectedValue); } else { ColumnFilterStorage.SetValue(i, null); OnColumnFilterStorageChanged(); } } } } } else if (ColumnFilterStorage.DataType == typeof(Int64) || ColumnFilterStorage.DataType == typeof(Int32) || ColumnFilterStorage.DataType == typeof(Int16) || ColumnFilterStorage.DataType == typeof(Byte) || ColumnFilterStorage.DataType == typeof(Double) || ColumnFilterStorage.DataType == typeof(Decimal) || ColumnFilterStorage.DataType == typeof(Single) || ColumnFilterStorage.DataType == typeof(String)) { for (int i = 0; i != controlsCount; i++) { ((TextBox)controls[i]).Text = Convert.ToString(ColumnFilterStorage.GetValue(i)); } } else if (ColumnFilterStorage.DataType == typeof(DateTime)) { for (int i = 0; i != controlsCount; i++) { ((DatePicker)controls[i]).Date = ColumnFilterStorage.GetValue(i); } } else if (ColumnFilterStorage.DataType == typeof(Boolean)) { for (int i = 0; i != controlsCount; i++) { ((DropDownList)controls[i]).SelectedValue = Convert.ToString(ColumnFilterStorage.GetValue(i)).ToLower(); } } foreach (var webControl in controls.Where(r => r != null)) { var property = TypeDescriptor.GetProperties(webControl).Find("AutoPostBack", false); property?.SetValue(webControl, postBack); } }
public void SetStorage(ColumnFilterStorage storage) { ColumnFilterStorage = storage; storageChanged = true; OnColumnFilterStorageChanged(); }
public void AddStorage(ColumnFilterStorage storage) { _values.Add(storage.Name, new Data(storage.Values, storage.FilterType)); }