Esempio n. 1
0
        public QueryConditionList GetQueryConditions()
        {
            QueryConditionList      queryConditions;
            ColumnFilterStorageList columnFilterStorageList = columnFilterList.ColumnFilterStorages;

            queryConditions = columnFilterStorageList != null
                                  ? columnFilterStorageList.QueryConditions
                                  : new QueryConditionList();

            return(queryConditions);
        }
        protected override void CreateChildControls()
        {
            base.CreateChildControls();
            bool initStorage = false;

            // HiddenField
            hiddenField = new HiddenField();
            Controls.Add(hiddenField);

            btnFullBriefView = new Image();
            Controls.Add(btnFullBriefView);
            btnFullBriefView.Style["position"] = "absolute";
            btnFullBriefView.Style["right"]    = "25px";
            btnFullBriefView.Style["top"]      = "0px";
            btnFullBriefView.ImageUrl          = defaultFullView ? BriefViewImageUrl : FullViewImageUrl;
            btnFullBriefView.Style["display"]  = showFullBriefViewButton ? "" : "none";
            btnFullBriefView.Style["cursor"]   = "hand";

            UpdatePanel buttonUpdatePanel = new UpdatePanel();

            buttonUpdatePanel.ID         = "buttonUpdatePanelID";
            buttonUpdatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional;
            Controls.AddAt(1, buttonUpdatePanel);

            btnSaveFiltersState    = new ImageButton();
            btnSaveFiltersState.ID = "btnSaveFiltersStateID";
            buttonUpdatePanel.ContentTemplateContainer.Controls.Add(btnSaveFiltersState);
            btnSaveFiltersState.Style["position"] = "absolute";
            btnSaveFiltersState.Style["right"]    = "50px";
            btnSaveFiltersState.Style["top"]      = "0px";
            btnSaveFiltersState.Style["display"]  = "";
            btnSaveFiltersState.ImageUrl          = SaveFilterStateImageUrl;
            btnSaveFiltersState.Style["cursor"]   = "hand";
            btnSaveFiltersState.Click            += BtnSaveFiltersState_OnClick;
            btnSaveFiltersState.ToolTip           = LookupControlsResources.SSaveFiltersState;

            // Get DataTable
            view      = (TableDataSourceView)GetData();
            dataTable = view.Table;

            // Ensure ColumnFilterStorages
            if (ColumnFilterStorages == null)
            {
                initStorage = true;
                ColumnFilterStorageList columnFilterStorages = new ColumnFilterStorageList();
                foreach (DataColumn dataColumn in dataTable.Columns)
                {
                    Boolean showInFilter   = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.SHOW_IN_FILTER) ?? false);
                    var     visibleCulture = (string)DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.SHOW_IN_FILTER_CULTURE);
                    if (!string.IsNullOrEmpty(visibleCulture))
                    {
                        showInFilter = showInFilter && visibleCulture.Equals(CultureInfo.CurrentUICulture.Name, StringComparison.CurrentCultureIgnoreCase);
                    }

                    if (showInFilter)
                    {
                        ColumnFilterStorage columnFilterStorage = new ColumnFilterStorage();

                        columnFilterStorage.Name            = dataColumn.ColumnName;
                        columnFilterStorage.Caption         = (String)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.CAPTION) ?? dataColumn.Caption);
                        columnFilterStorage.DataType        = dataColumn.DataType;
                        columnFilterStorage.DbType          = (NullableHelper.CreateNullable <DbType>(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.DB_TYPE)));
                        columnFilterStorage.FilterType      = ColumnFilterType.None;
                        columnFilterStorage.IsRefBound      = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_COLUMN_IS_REF) ?? false);
                        columnFilterStorage.HideInBriefView = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_HIDE_IN_BRIEF_VIEW) ?? false);
                        if (columnFilterStorage.IsRefBound)
                        {
                            DataTable filterRefTable = (DataTable)DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_REF_TABLE);
                            columnFilterStorage.TableName        = filterRefTable.TableName;
                            columnFilterStorage.RefTableRolledIn = (Boolean)(DataSetResourceManager.GetTableExtProperty(filterRefTable, TableExtProperties.ROLLED_IN) ?? false);
                            columnFilterStorage.DisplayColumn    = DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_REF_DISPLAY_COLUMN) as String;
                            columnFilterStorage.ValueColumn      = DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_REF_VALUE_COLUMN) as String;
                        }
                        columnFilterStorage.AvailableFilters = columnFilterStorage.GetDefaultFilterTypes();
                        columnFilterStorage.DateTimeFormat   = (String)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_DATE_TIME_FORMAT));

                        columnFilterStorages.Add(columnFilterStorage);
                    }
                }
                SetColumnFilterStorages(columnFilterStorages);
            }

            if (view.SessionWorker == null)
            {
                throw new Exception("SessionWorker cannot be null");
            }

            // Get data source from session in case when column refers to another table
            DataSet dataSet = view.SessionWorker.Object as DataSet;

            if (dataSet == null)
            {
                throw new Exception("SessionWorker.Object is not DataSet or null");
            }

            foreach (ColumnFilterStorage storage in ColumnFilterStorages)
            {
                if (storage.IsRefBound)
                {
                    storage.RefDataSource = dataSet.Tables[storage.TableName];
                }
            }

            if (ViewState["FiltersStateLoaded"] == null)
            {
                ViewState["FiltersStateLoaded"] = true;
                LoadFiltersState();
            }

            // Filter panel
            filterPanel    = new Panel();
            filterPanel.ID = "filterPanelID";
            Controls.Add(filterPanel);
            filterPanel.Height     = filterHeight;
            filterPanel.ScrollBars = ScrollBars.Auto;

            // ColumnFilters
            columnFilters = new List <ColumnFilter>();


            var args = new ColumnFilterListCreatingEventArgs();

            OnColumnFilterListCreating(args);
            if (initStorage)
            {
                ColumnFilterStorages.AddRange(args.ListStorages);
            }
            foreach (ColumnFilterStorage columnFilterStorage in ColumnFilterStorages)
            {
                if (args.ListStorages.Where(s => s.Name.Equals(columnFilterStorage.Name)).Count() > 0)
                {
                    AddColumnFilter(columnFilterStorage);
                    continue;
                }
                string[] rights = (string[])(DataSetResourceManager.GetColumnExtProperty(
                                                 dataTable.Columns[columnFilterStorage.Name],
                                                 ColumnExtProperties.FILTER_RIGHTS) ?? new string[] { });
                Boolean userHasRights = true;
                foreach (string right in rights)
                {
                    userHasRights = UserRoles.IsInRole(Convert.ToString(right));
                    if (!userHasRights)
                    {
                        break;
                    }
                }

                if (userHasRights)
                {
                    AddColumnFilter(columnFilterStorage);
                }
            }
        }
 private void SetColumnFilterStorages(ColumnFilterStorageList value)
 {
     ViewState["ColumnFilterStorages"] = value;
 }