Пример #1
0
 /// <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();
 }
Пример #2
0
        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;
        }