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++; } }
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; } }
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; }
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); }
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); } }
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; }
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); } } }
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)); }
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))); }
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); } }
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; } } }