Example #1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            TableDataSourceView view = (TableDataSourceView)GetData();

            view.FillType = TableDataSourceFillType.Never;

            String tableCaption           = (String)(DataSetResourceManager.GetTableExtProperty(view.Table, TableExtProperties.CAPTION) ?? view.Table.TableName);
            String SSelectFromDBDirectory = LookupControlsResources.SSelectFromDBDirectory;

            popupControl.HeaderText = String.Format("{0} \"{1}\"", SSelectFromDBDirectory, tableCaption);

            if (AllowNullButton)
            {
                nullButton.Style["display"] = "";
            }
            else
            {
                nullButton.Style["display"] = "none";
            }

            // Because we don't use ViewState in GridView of LookupTable we have to
            // regenerate DataKeyNames from conrols where we stored this values earlier
            dataTextField       = DataTextField;
            dataValueField      = DataValueField;
            dataCodeField       = DataCodeField;
            dataDisableRowField = DataDisableRowField;
            UpdateDataKeyNames();
        }
        public static DataTable GetDataTable(object dataSource)
        {
            DataTable dataTable = dataSource as DataTable;

            if (dataTable != null)
            {
                return(dataTable);
            }
            DataView dataView = dataSource as DataView;

            if (dataView != null)
            {
                return(dataView.Table);
            }
            TableDataSourceView tableDataSourceView = dataSource as TableDataSourceView;

            if (tableDataSourceView != null)
            {
                return(tableDataSourceView.Table);
            }
            TableDataSource tableDataSource = dataSource as TableDataSource;

            if (tableDataSource != null)
            {
                return(tableDataSource.Table);
            }
            return(null);
        }
        private object BeforeOnDataBinding(out bool setValue, out TableDataSourceView data)
        {
            selectedValueBeforDataBinding = SelectedValue;
            object value = null;

            setValue = false;
            data     = null;
            if (Items.Count > -1 && selectedValueHistory != null)
            {
                data = GetData() as TableDataSourceView;
                if (data != null && data.HistoricalCountKeys > _historicalIndexValue)
                {
                    value = data.HistoricalValues[_historicalIndexValue];
                    data.HistoricalValues[_historicalIndexValue] = selectedValueHistory;
                    setValue = true;
                }
            }

            if (IncludeNullItem && (Items.Count == 0 || Items[0].Value != nullItem.Value))
            {
                Items.Insert(0, nullItem);
                AppendDataBoundItems = true;
            }

            return(value);
        }
        public void EnsureTextByValue(Object value)
        {
            if (!String.IsNullOrEmpty(Convert.ToString(value)))
            {
                TableDataSourceView _data = (TableDataSourceView)GetData();
                TableDataSourceView tableDataSourceView = new TableDataSourceView(
                    null,
                    _data.ShowHistoricalData,
                    _data.LoadAllHistoricalData,
                    _data.EndDateField,
                    _data.StartDateField,
                    _data.HistolicalPoint,
                    _data.CustomConditions,
                    _data.SelectMethod,
                    _data.TypeName,
                    _data.GetSelectParameters(),
                    _data.GetFilterParameters(),
                    _data.FilterExpression,
                    _data.SetFilterByCustomConditions);
                if (_data.HistoricalCountKeys == 1)
                {
                    tableDataSourceView.HistoricalKey          = _data.HistoricalKey;
                    tableDataSourceView.HistoricalSelectMethod = _data.HistoricalSelectMethod;
                    tableDataSourceView.HistoricalCountKeys    = 1;
                    tableDataSourceView.HistoricalValues[0]    = value;
                }
                QueryCondition queryCondition = new QueryCondition(DataValueField, ColumnFilterType.Equal, value, null);
                tableDataSourceView.CustomConditions.Add(queryCondition);
                DataView dataView;
                try
                {
                    DataSourceSelectArguments arguments = new DataSourceSelectArguments();
                    dataView =
                        (DataView)tableDataSourceView.Select(true, arguments, new DataSourceSelectExtArguments(1));
                }
                finally
                {
                    tableDataSourceView.CustomConditions.Remove(queryCondition);
                }

                //выполнение запроса должно помещать 1 запись в таблицу
                if (dataView.Table.Rows.Count == 1)
                {
                    Text = dataView.Table.Rows[0][DataTextField].ToString();
                }
                else if (dataView.Count == 1)
                {
                    Text = dataView[0][DataTextField].ToString();
                }
                else
                {
                    Text = "";
                }
            }
            else
            {
                Text = "";
            }
            textBox.Text = Text;
        }
        private void FillProps()
        {
            TableDataSourceView _data = (TableDataSourceView)GetData();

            if (!DesignMode &&
                _data != null &&
                !String.IsNullOrEmpty(DataTextField) && !String.IsNullOrEmpty(DataValueField))
            {
                Hashtable props = new Hashtable();
                props["ShowHistoricalData"]    = _data.ShowHistoricalData;
                props["LoadAllHistoricalData"] = _data.LoadAllHistoricalData;
                props["EndDateField"]          = _data.EndDateField;
                props["StartDateField"]        = _data.StartDateField;
                props["HistolicalPoint"]       = _data.HistolicalPoint;
                props["QueryConditionsList"]   = _data.CustomConditions;
                props["FilterParameters"]      = _data.GetFilterParameters();
                props["SelectMethod"]          = _data.SelectMethod;
                props["TypeName"]                    = _data.TypeName;
                props["SelectParameters"]            = _data.GetSelectParameters();
                props["DataTextField"]               = DataTextField;
                props["DataCodeField"]               = DataCodeField;
                props["DataValueField"]              = DataValueField;
                props["DataDisableRowField"]         = DataDisableRowField;
                props["ConditionValue"]              = ConditionValue;
                props["FilterExpression"]            = _data.FilterExpression;
                props["SetFilterByCustomConditions"] = _data.SetFilterByCustomConditions;

                Page.Session[WebMethodSessionKey] = props;
            }
        }
 public TableDataSource()
 {
     _view          = new TableDataSourceView(this, DefaultViewName, base.Context);
     _view.FillType = TableDataSourceFillType.ParametersNotChanged;
     _viewFieldInfo.SetValue(this, _view);
     if (IsTrackingViewState)
     {
         ((IStateManager)_view).TrackViewState();
     }
 }
 protected override void OnDataSourceViewChanged(object sender, EventArgs e)
 {
     if (_view != null)
     {
         _viewFinded             = false;
         _view.CurrentChanged   -= TableDataSourceView_OnCurrentChanged;
         _view.Table.RowChanged -= Table_OnRowChanged;
         _view = null;
     }
     base.OnDataSourceViewChanged(sender, e);
 }
 protected override void OnModeChanging(DetailsViewModeEventArgs e)
 {
     _cancelingEdit = e.CancelingEdit;
     base.OnModeChanging(e);
     if (AllowChangeViewMode)
     {
         if (TableDataSourceView != null && !e.Cancel &&
             e.CancelingEdit && Parent is View)
         {
             if (TableDataSourceView.HasNewRow)
             {
                 e.Cancel = true;
             }
             TableDataSourceView.CancelEdit();
         }
     }
 }
 protected override void OnModeChanged(EventArgs e)
 {
     if (AllowChangeViewMode)
     {
         if (TableDataSourceView != null && CurrentMode == DetailsViewMode.ReadOnly &&
             (TableDataSourceView.HasNewRow || TableDataSourceView.IsEditRow))
         {
             if (_cancelingEdit && !(Parent is View))
             {
                 TableDataSourceView.CancelEdit();
             }
             TableDataSourceView.EndEdit();
         }
         if (TableDataSourceView != null && CurrentMode == DetailsViewMode.Edit &&
             !TableDataSourceView.IsEditRow)
         {
             TableDataSourceView.BeginEdit();
         }
     }
     base.OnModeChanged(e);
 }
        private void AfterDataBinding(bool setValue, TableDataSourceView data, object value)
        {
            if (setValue)
            {
                data.HistoricalValues[_historicalIndexValue] = value;
            }

            if (IncludeNullItem && (Items.Count == 0 || Items[0] != nullItem))
            {
                Items.Insert(0, nullItem);
                SelectedValue = selectedValue;
            }

            /*
             * if (selectedValueBeforDataBinding != null
             *  && selectedValueBeforDataBinding != SelectedValue
             *  && Items.Cast<ListItem>().Any(r => r.Value == Convert.ToString(selectedValueBeforDataBinding)))
             * {
             *  SelectedValue = selectedValueBeforDataBinding;
             * }*/
        }
        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);
                }
            }
        }
Example #12
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (DesignMode)
            {
                return;
            }

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

            Boolean allowPaging = (Boolean)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.ALLOW_PAGING) ?? true);

            if (allowPaging)
            {
                Int32 pageSize = (Int32)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.PAGE_SIZE) ?? 10);
                gridView.AllowPaging = true;
                gridView.PageSize    = pageSize;
                view.EnablePaging    = true;
            }
            var isTree = AllowTreeAndPaging || (bool)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.IS_TREE_REF) ?? false);

            if (!allowPaging || isTree)
            {
                view.EnablePaging = false;
                if (!isTree)
                {
                    gridView.AllowPaging = false;
                }
                if (GridTreeMode)
                {
                    String Relation = (String)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.TREE_REF_RELATION) ?? "");
                    gridView.ShowAsTree            = !String.IsNullOrEmpty(Relation);
                    gridView.AllowNewButtonForTree = false;
                    gridView.PostBackOnExpnad      = postBackOnTreeExpand;
                    if (gridView.ShowAsTree)
                    {
                        gridView.RelationName = Relation;
                    }
                }
            }

            gridView.AutoGenerateColumns = false;

            if (ViewState["ColumnsCreated"] == null)
            {
                ViewState["ColumnsCreated"] = true;

                if (AllowErrorIconColumn)
                {
                    var field = new TemplateFieldExt
                    {
                        ColumnName = "ErrorIconColumn",
                    };
                    gridView.Columns.Add(field);
                }

                foreach (DataColumn dc in dataTable.Columns)
                {
                    var showColumn     = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.VISIBLE) ?? false);
                    var visibleCulture = (string)DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.VISIBLE_CULTURE);
                    if (!string.IsNullOrEmpty(visibleCulture))
                    {
                        showColumn = showColumn && visibleCulture.Equals(CultureInfo.CurrentUICulture.Name, StringComparison.CurrentCultureIgnoreCase);
                    }

                    Object[] rights        = (Object[])(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.RIGHTS) ?? new Object[] {});
                    Boolean  userHasRights = true;
                    foreach (Object right in rights)
                    {
                        userHasRights = UserRoles.IsInRole(Convert.ToString(right));
                        if (!userHasRights)
                        {
                            break;
                        }
                    }

                    if (showColumn && userHasRights)
                    {
                        String columnCaption = (String)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.CAPTION) ?? dc.Caption);
                        if (dc.DataType == typeof(DateTime))
                        {
                            String dataFormatString = (String)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.FILTER_DATE_TIME_FORMAT) ?? null);

                            BoundField boundField = new BoundField();
                            boundField.DataField        = dc.ColumnName;
                            boundField.HeaderText       = columnCaption;
                            boundField.DataFormatString = dataFormatString;
                            boundField.HtmlEncode       = false;
                            boundField.SortExpression   = dc.ColumnName;
                            gridView.Columns.Add(boundField);
                        }
                        else if (dc.DataType == typeof(Boolean))
                        {
                            CheckBoxField checkBoxField = new CheckBoxField();
                            checkBoxField.DataField      = dc.ColumnName;
                            checkBoxField.HeaderText     = columnCaption;
                            checkBoxField.SortExpression = dc.ColumnName;
                            gridView.Columns.Add(checkBoxField);
                        }
                        else
                        {
                            BoundField boundField = new BoundField();
                            boundField.DataField      = dc.ColumnName;
                            boundField.HeaderText     = columnCaption;
                            boundField.SortExpression = dc.ColumnName;
                            Boolean htmlEncode = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.HTML_ENCODED) ?? false);
                            boundField.HtmlEncode = htmlEncode;
                            gridView.Columns.Add(boundField);
                        }
                    }
                }

                if (AllowErrorColumn)
                {
                    var field = new TemplateFieldExt
                    {
                        ColumnName = "ErrorColumn",
                        HeaderText = ErrorHeaderText,
                    };
                    gridView.Columns.Add(field);
                }
            }
            if (AllowErrorColumn || AllowErrorIconColumn)
            {
                gridView.RowCreated += GridView_OnRowCreated;
            }
        }
Example #13
0
        public string[] GetCompletionList(string prefixText, int count, string contextKey)
        {
            Hashtable props = (Hashtable)Session[contextKey];

            TableDataSourceView tableDataSourceView = new TableDataSourceView(
                null,
                (Boolean)props["ShowHistoricalData"],
                (Boolean)props["LoadAllHistoricalData"],
                (String)props["EndDateField"],
                (String)props["StartDateField"],
                (DateTime?)props["HistolicalPoint"],
                (QueryConditionList)props["QueryConditionsList"],
                (String)props["SelectMethod"],
                (String)props["TypeName"],
                (List <Triplet>)props["SelectParameters"],
                (Dictionary <String, String>)props["FilterParameters"],
                (String)props["FilterExpression"],
                (Boolean)props["SetFilterByCustomConditions"]);

            QueryCondition queryCondition = new QueryCondition((String)props["DataTextField"],
                                                               ColumnFilterType.StartWith, prefixText, null);

            tableDataSourceView.CustomConditions.Add(queryCondition);

            QueryCondition disableRowFieldQueryCondition = null;
            String         disableRowField = (String)props["DataDisableRowField"];

            if (!String.IsNullOrEmpty(disableRowField))
            {
                Int32 disableRowCondition = (Int32)props["ConditionValue"];
                disableRowFieldQueryCondition = new QueryCondition(disableRowField,
                                                                   ColumnFilterType.Equal, disableRowCondition, null);

                tableDataSourceView.CustomConditions.Add(disableRowFieldQueryCondition);
            }

            DataView dataView;

            try
            {
                string filterString = tableDataSourceView.GetFilterString();
                dataView           = (DataView)tableDataSourceView.Select(true, new DataSourceSelectArguments(), new DataSourceSelectExtArguments(count));
                dataView.RowFilter = filterString;
            }
            finally
            {
                tableDataSourceView.CustomConditions.Remove(queryCondition);

                if (disableRowFieldQueryCondition != null)
                {
                    tableDataSourceView.CustomConditions.Remove(disableRowFieldQueryCondition);
                }
            }

            List <string>        items = new List <string>();
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();

            foreach (DataRowView dataRowView in dataView)
            {
                String text = dataRowView[(String)props["DataTextField"]].ToString();
                String code = String.IsNullOrEmpty((String)props["DataCodeField"]) ?
                              "-1" : dataRowView[(String)props["DataCodeField"]].ToString();
                String id    = dataRowView[(String)props["DataValueField"]].ToString();
                String value = javaScriptSerializer.Serialize(new Pair(id, code));
                String item  = javaScriptSerializer.Serialize(new Pair(text, value));
                items.Add(item);
            }
            return(items.ToArray());
        }