| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using System;
- using System.Windows.Forms;
- using Infragistics.Win.UltraWinGrid;
- namespace Core.Mes.Client.Comm.Control
- {
- /// <summary>
- /// ExtendedUltraGrid
- /// 1.支持列标题复选框全选功能
- /// </summary>
- public class ExtendedUltraGrid : UltraGrid
- {
- /// <summary>
- /// 需要进行选择的列名
- /// </summary>
- public string SelectAllColumnName{get;set;}
- internal bool IsGroupMode
- {
- get
- {
- foreach (var row in this.Rows)
- {
- if (row.IsGroupByRow)
- {
- return true;
- }
- }
- return false;
- }
- }
- internal CheckState CheckState{ get; set; }
- /// <summary>
- /// ExtendedUltraGrid
- /// </summary>
- public ExtendedUltraGrid()
- {
- this.CreationFilter = new CheckableHeaderCreationFilter(this);
- }
- /// <summary>
- /// 重写 UltraGrid OnCellChange方法
- /// 全选时或反选时触发对应CellChange事件
- /// </summary>
- /// <param name="e"></param>
- protected override void OnCellChange(CellEventArgs e)
- {
- base.OnCellChange(e);
- if (e.Cell.Column.Key.Equals(this.SelectAllColumnName))
- {
- if (!Convert.ToBoolean(e.Cell.Value))
- {
- if (CheckState == CheckState.Checked) CheckState = CheckState.Unchecked;
- }
- else
- {
- if (e.Cell.Row.Band.Columns.Exists(SelectAllColumnName))
- {
- foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in this.Rows)
- {
- if (!Convert.ToBoolean(row.Cells[SelectAllColumnName].Value))
- {
- return;
- }
- }
- CheckState = CheckState.Checked;
- }
- }
- }
- }
- internal void ChangeCell(Infragistics.Win.UltraWinGrid.UltraGridCell cell)
- {
- if (cell != null)
- {
- OnCellChange(new CellEventArgs(cell));
- }
- }
- }
- }
|