Exemple #1
0
        void DataGridExample_Loaded(object sender, RoutedEventArgs e)
        {
            List <GridSetting> localSettings = this.OwningGrid.AllGridSettings;

            this.OwningGrid.GridSettings = localSettings.Where(p => p.GridGuid == this.OwningGrid.GridID).ToList();
            BuildCustomProfileList();
            GridSetting grid = this.OwningGrid.GridSettings.FirstOrDefault(p => p.IsDefault);

            grid.Columns.Sort((p1, p2) => p1.Index.CompareTo(p2.Index));
            int i = 0;

            foreach (var item in grid.Columns)
            {
                item.Index = i;
                var columnData = this.DataGridExample.Columns.FirstOrDefault(p => p.GetColumnName() == item.Name);
                if (columnData != null)
                {
                    columnData.DisplayIndex = i;
                    if (item.ActualWidth > 20)
                    {
                        columnData.Width = new DataGridLength(item.ActualWidth);
                    }
                    columnData.Visibility = item.IsHided ? Visibility.Collapsed : Visibility.Visible;
                }
                i++;
            }
        }
Exemple #2
0
        internal void SaveProfileData(bool isApplyConfig)
        {
            var name = this.OwningGrid.GridID;

            if (string.IsNullOrEmpty(name))
            {
                return;
            }
            GridSetting config = null;

            if (this.OwningGrid.GridSettings != null)
            {
                config = this.OwningGrid.GridSettings.FirstOrDefault(p => p.IsDefault);
            }
            else
            {
                this.OwningGrid.GridSettings = new List <GridSetting>();
            }

            if (config == null)
            {
                config = new GridSetting
                {
                    GridGuid                 = this.OwningGrid.GridID,
                    Name                     = "Default Setting",
                    PageSize                 = this.OwningGrid.PageSize,
                    IsDefault                = true,
                    RowHeight                = this.OwningGrid.IsShowColumnsSelector ? this.OwningGrid.m_columnsSelector._rowHeightInput.Value : this.OwningGrid.RowHeight,
                    RowBackground            = this.OwningGrid.m_columnsSelector.TransFormColorToUint(this.OwningGrid.RowBackground),
                    AlternatingRowBackground = this.OwningGrid.m_columnsSelector.TransFormColorToUint(this.OwningGrid.AlternatingRowBackground),
                    Columns                  = GetColumns()
                };
            }
            else
            {
                config.Columns = GetColumns();
            }

            var result = this.OwningGrid.GridSettings.FirstOrDefault(p => p.Name == config.Name);

            if (result == null)
            {
                this.OwningGrid.GridSettings.Insert(0, config);
            }
            else
            {
                var index = this.OwningGrid.GridSettings.IndexOf(result);
                this.OwningGrid.GridSettings[index] = config;
            }

            if (isApplyConfig)
            {
                this.OwningGrid.m_columnsSelector.ApplyConfig(config);
            }
            if (config.IsDefault)
            {
                TextBlockContent.Text = config.Name;
                TextBlockNeedCoverProfileName.Text = config.Name;
            }
        }
Exemple #3
0
        void InitUIByProfileData()
        {
            GridSetting grid = this.OwningGrid.GridSettings.FirstOrDefault(p => p.IsDefault);

            grid.Columns.Sort((p1, p2) => p1.Index.CompareTo(p2.Index));

            foreach (var column in this.OwningGrid.Columns)
            {
                var name = string.Empty;
                try
                {
                    name = DataGridAttached.GetHeader(column).ToString();
                }
                catch
                {
                    name = column.GetColumnName();
                }

                grid.Columns.FirstOrDefault(p => p.Name == column.GetColumnName()).DisplayName = name;
            }

            ObservableCollection <GridColumn> collectionSelected = new ObservableCollection <GridColumn>(grid.Columns.Where(p => !p.IsHided));

            collectionSelected.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(collectionSelected_CollectionChanged);
            ListBoxSelectedColumns.ItemsSource    = collectionSelected;

            ObservableCollection <GridColumn> collectionAvailable = new ObservableCollection <GridColumn>(grid.Columns.Where(p => p.IsHided));

            ListBoxAvailableColumns.ItemsSource = collectionAvailable;
        }
Exemple #4
0
        internal void RefreshDefaultProfileData()
        {
            InitUIByProfileData();
            GridSetting grid = this.OwningGrid.GridSettings.FirstOrDefault(p => p.IsDefault);

            grid.Columns.Sort((p1, p2) => p1.Index.CompareTo(p2.Index));
            collectionSelected_CollectionChanged(new ObservableCollection <GridColumn>(grid.Columns), null);
        }
Exemple #5
0
        internal void CheckDataGridColumnChanged()
        {
            bool              isNeedChanged      = false;
            GridSetting       defaultGridSetting = this.OwningGrid.GridSettings.FirstOrDefault(p => p.IsDefault);
            List <GridColumn> columns            = UtilityHelper.DeepClone <List <GridColumn> >(defaultGridSetting.Columns);

            foreach (var col in columns)
            {
                var findResult = this.OwningGrid.Columns.FirstOrDefault(colTemp => colTemp.GetColumnName() == col.Name);
                if (findResult == null)
                {
                    isNeedChanged = true;
                    RemoveCol(col.Name);
                }
            }

            foreach (var col in this.OwningGrid.Columns)
            {
                var findResult = defaultGridSetting.Columns.FirstOrDefault(colTemp => col.GetColumnName() == colTemp.Name);
                if (findResult == null)
                {
                    isNeedChanged = true;
                    var name = string.Empty;
                    try
                    {
                        name = DataGridAttached.GetHeader(col).ToString();
                    }
                    catch
                    {
                        name = col.GetColumnName();
                    }
                    col.Visibility = Visibility.Collapsed;
                    this.DataGridExample.Columns[this.OwningGrid.Columns.IndexOf(col)].Visibility = Visibility.Collapsed;
                    AddCol(new GridColumn
                    {
                        ActualWidth = col.ActualWidth,
                        Width       = col.Width,
                        DisplayName = name,
                        Index       = col.DisplayIndex,
                        IsFreezed   = false,
                        IsHided     = true,
                        Name        = col.GetColumnName()
                    });
                }
            }
            if (isNeedChanged)
            {
                var allSettings = this.OwningGrid.AllGridSettings;
                allSettings.RemoveAll(k => k.GridGuid == this.OwningGrid.GridID);
                this.OwningGrid.GridSettings.ForEach(p =>
                {
                    allSettings.Add(p);
                });
                this.OwningGrid.m_userProfile.Set(GridKeys.KEY_UP_GRIDSETTINGS, allSettings, true);
            }
        }
Exemple #6
0
        public static void SaveLayout(DataGrid DataGrid, ICollectionView Collection, string GridName)
        {
            if (DataGrid == null)
            {
                return;
            }

            var gridSetting = new GridSetting();

            gridSetting.GridName = GridName;

            foreach (var Column in DataGrid.Columns)
            {
                var columnSetting = new GridColumnSetting();
                columnSetting.ColumnName = Column.GetFieldName();
                columnSetting.Position   = Column.DisplayIndex;
                columnSetting.Width      = Column.ActualWidth;
                gridSetting.ColumnSettings.Add(columnSetting);
            }

            foreach (PropertyGroupDescription GroupDescription in Collection.GroupDescriptions)
            {
                gridSetting.GroupedColumns.Add(new GridGroupingColumn {
                    ColumnName = GroupDescription.PropertyName
                });
            }

            foreach (var SortDescription in Collection.SortDescriptions)
            {
                gridSetting.SortingColumns.Add(new GridSortingColumn {
                    ColumnName = SortDescription.PropertyName, SortDirection = SortDescription.Direction
                });
            }

            var settingsResult = m_SettingsBll.GetSettings();

            if (!settingsResult.Succeeded)
            {
                return;
            }

            var settings = settingsResult.Result;

            settings.GridSettings.RemoveAll(s => s.GridName == GridName);
            settings.GridSettings.Add(gridSetting);

            var saveResult = m_SettingsBll.SaveSettings(settings);

            if (!saveResult.Succeeded)
            {
                MessageBox.Show(saveResult.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
 public BaseDescriptor(Type modelType, string property)
 {
     Validator             = new List <ValidatorBase>();
     Classes               = new List <string>();
     Properties            = new Dictionary <string, string>();
     Styles                = new Dictionary <string, string>();
     GridSetting           = new GridSetting();
     this.ModelType        = modelType;
     this.Name             = property;
     this.OrderIndex       = 100;
     this.IsShowForEdit    = true;
     this.IsShowForDisplay = true;
 }
Exemple #8
0
        internal void ConvertOldProfileDataToNewProfileData()
        {
            var settings = m_userProfile.Get <List <Setting> >(UserSetting.s_userSetting_Key);

            if (settings != null)
            {
                var m_currentSetting = settings.FirstOrDefault(p => string.Equals(p.Guid, this.OwningGrid.GridID, StringComparison.OrdinalIgnoreCase));
                if (m_currentSetting != null)
                {
                    GridSetting setting = this.OwningGrid.GridSettings.FirstOrDefault();
                    if (setting == null)
                    {
                        setting           = UtilityHelper.DeepClone <GridSetting>(this.OwningGrid.m_resetGridConfig);
                        setting.IsDefault = true;
                    }
                    setting.Name = "Default Setting";

                    if (setting.Columns.Count == m_currentSetting.Columns.Count)
                    {
                        for (int i = 0; i < setting.Columns.Count; i++)
                        {
                            setting.Columns[i].Index       = m_currentSetting.Columns[i].DisplayIndex;
                            setting.Columns[i].ActualWidth = m_currentSetting.Columns[i].ActualWidth == this.OwningGrid.Columns[i].ActualWidth ? m_currentSetting.Columns[i].ActualWidth : this.OwningGrid.Columns[i].ActualWidth;
                            setting.Columns[i].Width       = this.OwningGrid.Columns[i].Width;
                            setting.Columns[i].IsFreezed   = false;
                            setting.Columns[i].IsHided     = false;
                            setting.Columns[i].Name        = this.OwningGrid.Columns[i].GetColumnName();
                        }
                    }
                    //移除以前老版本的ColumnProfile数据;
                    settings.Remove(m_currentSetting);
                    m_userProfile.Set(UserSetting.s_userSetting_Key, settings);

                    //添加转换后的ColumnProfile数据到新的ProfileKey中;
                    List <GridSetting> localSettings = this.OwningGrid.AllGridSettings;
                    var result = localSettings.FirstOrDefault(p => p.Name == setting.GridGuid && p.GridGuid == setting.GridGuid);
                    if (result != null)
                    {
                        localSettings.Remove(result);
                        this.OwningGrid.GridSettings.Clear();
                    }
                    localSettings.Add(setting);
                    this.OwningGrid.GridSettings.Add(setting);
                    m_userProfile.Set(GridKeys.KEY_UP_GRIDSETTINGS, localSettings);
                }
            }
        }
Exemple #9
0
        public Task <GridSetting> SaveAsync(GridSetting GridSetting, bool updateAllUsers, CancellationToken token = default(CancellationToken))
        {
            var query = updateAllUsers ? @"
MERGE INTO GridSetting AS target
USING (
    SELECT  @CompanyId      AS CompanyId
          , @LoginUserId    AS LoginUserId
          , @GridId         AS GridId
          , @ColumnName     AS ColumnName
     ) AS source ON (
            target.CompanyId    = source.CompanyId
        AND target.GridId       = source.GridId
        AND target.ColumnName   = source.ColumnName
)
      WHEN MATCHED THEN
         UPDATE SET
         DisplayWidth = @DisplayWidth
        ,DisplayOrder = @DisplayOrder
        ,UpdateAt = GETDATE()
     WHEN NOT MATCHED THEN
         INSERT ( CompanyId,       LoginUserId, GridId, ColumnName, DisplayOrder, DisplayWidth, CreateBy, CreateAt, UpdateBy, UpdateAt)
         VALUES (@CompanyId,source.LoginUserId,@GridId,@ColumnName,@DisplayOrder,@DisplayWidth,@CreateBy,GETDATE(),@UpdateBy,GETDATE())
     OUTPUT inserted.*;" : @"
MERGE INTO GridSetting AS target
USING (
    SELECT  @CompanyId      AS CompanyId
          , @LoginUserId    AS LoginUserId
          , @GridId         AS GridId
          , @ColumnName     AS ColumnName
) AS source ON (
            target.CompanyId        = source.CompanyId
        AND target.LoginUserId      = source.LoginUserId
        AND target.GridId           = source.GridId
        AND target.ColumnName       = source.ColumnName
)
 WHEN MATCHED THEN
    UPDATE SET
    DisplayWidth    = @DisplayWidth
   ,DisplayOrder    = @DisplayOrder
   ,UpdateAt        = GETDATE()
WHEN NOT MATCHED THEN
    INSERT ( CompanyId,  LoginUserId,  GridId,  ColumnName,  DisplayOrder,  DisplayWidth,  CreateBy,  CreateAt,  UpdateBy,  UpdateAt)
    VALUES (@CompanyId, @LoginUserId, @GridId, @ColumnName, @DisplayOrder, @DisplayWidth, @CreateBy, GETDATE(), @UpdateBy, GETDATE())
OUTPUT inserted.*; ";

            return(dbHelper.ExecuteAsync <GridSetting>(query, GridSetting, token));
        }
Exemple #10
0
        protected virtual ActionResult BaseIndex(int?page, string sortColumn, string sortOrder, IModel model)
        {
            IvsMessage    message    = null;
            List <IModel> lstModels  = new List <IModel>();
            int           returnCode = CommonData.DbReturnCode.Succeed;
            int           pageNumber = (page ?? 1);

            //this.Model = Model;
            this.SetSearchModel <IModel>(page, ref model);

            //reload condition to show again
            this.SetSearchControlData();

            returnCode = Bl.SearchData(model, out lstModels);
            if (returnCode == CommonData.DbReturnCode.Succeed)
            {
                if (Request.Form["btnSearch"] != null || Request.Form["btnRefresh"] != null)
                {
                    message = new IvsMessage(CommonConstantMessage.COM_MSG_ROW_FOUND, lstModels.Count.ToString());
                    TempData[CommonData.MessageArea.MsgContent] = message.MessageText;
                }
            }
            else
            {
                TempData[CommonData.MessageArea.MsgContent] = CommonMethod.ProcessDbExcetion(returnCode);
            }

            Session[SEARCH_RESULT] = lstModels;

            //Sorting
            ViewBag.SortOrder  = sortOrder;
            ViewBag.SortColumn = sortColumn;
            GridSetting setting = new GridSetting(pageNumber, recordsPerPage, sortColumn, sortOrder);

            lstModels = setting.LoadGridData <IModel>(lstModels, true).ToList();
            return(PartialView(this.PartialViewName, ConvertToPageList(lstModels, recordsPerPage, pageNumber)));
        }
Exemple #11
0
        public static void LoadLayout(DataGrid DataGrid, ICollectionView Collection, string GridName, GridSetting defaultLayout)
        {
            if (DataGrid == null)
            {
                return;
            }

            var settingsResult = m_SettingsBll.GetSettings();

            if (!settingsResult.Succeeded)
            {
                return;
            }

            var gridSetting = settingsResult.Result.GridSettings.FirstOrDefault(s => s.GridName == GridName);

            if (gridSetting != null)
            {
                __LoadLayout(DataGrid, Collection, gridSetting);
            }
            else if (defaultLayout != null)
            {
                __LoadLayout(DataGrid, Collection, defaultLayout);
            }
        }
Exemple #12
0
        private static void __LoadLayout(DataGrid DataGrid, ICollectionView Collection, GridSetting gridSetting)
        {
            foreach (var Column in DataGrid.Columns)
            {
                var columnSetting = gridSetting.ColumnSettings.FirstOrDefault(s => s.ColumnName == Column.GetFieldName());

                if (columnSetting == null)
                {
                    continue;
                }

                Column.DisplayIndex = columnSetting.Position;
                Column.Width        = new DataGridLength(columnSetting.Width);
            }

            Collection.GroupDescriptions.Clear();
            Collection.SortDescriptions.Clear();

            foreach (var Column in gridSetting.GroupedColumns)
            {
                Collection.GroupDescriptions.Add(new PropertyGroupDescription(Column.ColumnName));
            }

            foreach (var Column in gridSetting.SortingColumns)
            {
                Collection.SortDescriptions.Add(new SortDescription(Column.ColumnName, Column.SortDirection));

                var GridColumn = DataGrid.Columns.FirstOrDefault(c => c.GetFieldName() == Column.ColumnName);

                if (GridColumn != null)
                {
                    GridColumn.SortDirection = Column.SortDirection;
                }
            }
        }