/// <summary> /// Hiển thị các cột đã được chọn /// </summary> /// <param name="gridView"></param> /// <param name="cotHienThi"></param> public static void DisplayTheoTuyBienCot(GridView gridView, RepositoryItemCheckedComboBoxEdit cotHienThi) { //gridView.ClearGrouping(); List<string> listCotHienThi = new List<string>(cotHienThi.GetCheckedItems().ToString().Split(',')); int i = 0; foreach (GridColumn column in gridView.Columns) { if (listCotHienThi.Exists(delegate(string visibleName) { return string.Compare(visibleName.Trim(), column.Name) == 0; })){ column.Visible = true; column.VisibleIndex = i++; } else column.Visible = false; } gridView.BestFitColumns(); }
private static BarEditItem AddTuyBienCot(BarManager barManager, LinksInfo linksInfo, string caption, GridView gridView, GridColumn[] excludeColumns, params string[] defaultColumns) { var repositoryItemCheckedCotHienThi = new RepositoryItemCheckedComboBoxEdit { AutoHeight = false, BestFitWidth = 180, Name = "repositoryItemCheckedCotHienThi" }; // // repositoryItemCheckedCotHienThi // // var barEditItemCotHienThi = new BarEditItem { Caption = string.IsNullOrEmpty(caption) ? "&Cột hiển thị" : caption, Edit = repositoryItemCheckedCotHienThi, Name = "barEditItem1", PaintStyle = BarItemPaintStyle.CaptionGlyph, Width = 200 }; // // barEditItemCotHienThi // // barManager.Items.Add(barEditItemCotHienThi); barManager.RepositoryItems.AddRange(new RepositoryItem[] { repositoryItemCheckedCotHienThi }); // linksInfo.Add(new LinkPersistInfo(barEditItemCotHienThi, true)); //Gán. các cột vào CheckedComboBox var columns = gridView.Columns.Cast<GridColumn>().OrderBy(cl => cl.Caption); if (excludeColumns == null || excludeColumns.Length == 0) { foreach (GridColumn column in columns) { //repositoryItemCheckedCotHienThi.Items.Add(column.Name, column.Caption); repositoryItemCheckedCotHienThi.Items.Add(column, !string.IsNullOrEmpty(column.CustomizationCaption) ? column.CustomizationCaption : column.Caption); } } else { var listExcludeCol = new List<GridColumn>(excludeColumns); foreach (GridColumn column in columns) { if (listExcludeCol.Any(c => c.Name == column.Name)) { column.Visible = false; column.OptionsColumn.AllowShowHide = false; continue; } //repositoryItemCheckedCotHienThi.Items.Add(column.Name, column.Caption); repositoryItemCheckedCotHienThi.Items.Add(column, !string.IsNullOrEmpty(column.CustomizationCaption) ? column.CustomizationCaption : column.Caption); } } //------------------------------- // repositoryItemCheckedCotHienThi.CloseUp += delegate(object sender, CloseUpEventArgs e) { var value = new StringBuilder(); foreach ( CheckedListBoxItem item in (sender as CheckedComboBoxEdit).Properties.Items) { if (item.CheckState == CheckState.Checked) { value.Append(" " + item.Description + (sender as CheckedComboBoxEdit). Properties.SeparatorChar. ToString()); ((GridColumn)item.Value).Visible = true; } else { ((GridColumn)item.Value).Visible = false; } } e.Value = value.Length > 0 ? value.ToString().Remove(value.Length - 1) : string.Empty; gridView.BestFitColumns(); }; // //Kiểm tra đã tồn tại layout cho gridView var str = new StringBuilder(FrameworkParams.currentUser.username); str.Append(gridView.GridControl.FindForm().Name + gridView.GridControl.Name + gridView.Name); var listFile = new List<FileInfo>(new DirectoryInfo(FrameworkParams.LAYOUT_FOLDER).GetFiles()); if (listFile.Exists(delegate(FileInfo e) { if (e.Name.Length >= str.Length) return String.CompareOrdinal(str.ToString(), e.Name.Substring(0, str.Length)) == 0; return false; })) { defaultColumns = null; gridView.GridControl.Load += delegate { var displayText = new StringBuilder(); var listDefaultColumn = (from GridColumn column in gridView.Columns where column.Visible || column.GroupIndex >= 0 select column.Name).ToList(); for (int i = 0; i < repositoryItemCheckedCotHienThi.Items.Count; i++) { var temp = (GridColumn)repositoryItemCheckedCotHienThi.Items[i].Value; if (listDefaultColumn.Contains(temp.Name)) { repositoryItemCheckedCotHienThi.Items[i].CheckState = CheckState.Checked; displayText.Append(" " + repositoryItemCheckedCotHienThi.Items[i] .Description + repositoryItemCheckedCotHienThi. SeparatorChar.ToString()); temp.Visible = true; } else temp.Visible = false; } if (displayText.ToString() != string.Empty) barEditItemCotHienThi.EditValue = displayText.ToString().Remove(displayText.Length - 1); repositoryItemCheckedCotHienThi. SynchronizeEditValueWithCheckedItems = false; }; } //------------------------------ //Set các cột hiển thị mặc định if (defaultColumns != null) { var listDefaultColumn = new List<string>(defaultColumns); var displayText = new StringBuilder(); for (int i = 0; i < repositoryItemCheckedCotHienThi.Items.Count; i++) { var temp = (GridColumn)repositoryItemCheckedCotHienThi.Items[i].Value; if (listDefaultColumn.Contains(temp.Name)) { repositoryItemCheckedCotHienThi.Items[i].CheckState = CheckState.Checked; displayText.Append(" " + repositoryItemCheckedCotHienThi.Items[i].Description + repositoryItemCheckedCotHienThi.SeparatorChar.ToString()); temp.Visible = true; } else temp.Visible = false; } if (displayText.ToString() != string.Empty) barEditItemCotHienThi.EditValue = displayText.ToString().Remove(displayText.Length - 1); repositoryItemCheckedCotHienThi.SynchronizeEditValueWithCheckedItems = false; // DisplayTheoTuyBienCot(gridView, repositoryItemCheckedCotHienThi); } gridView.ColumnPositionChanged += delegate(object sender, EventArgs e) { var col = (GridColumn)sender; CheckedListBoxItem item = repositoryItemCheckedCotHienThi.Items[col]; if (item == null) return; item.CheckState = col.Visible ? CheckState.Checked : CheckState.Unchecked; barEditItemCotHienThi.EditValue = repositoryItemCheckedCotHienThi.GetCheckedItems().ToString(); }; return barEditItemCotHienThi; }