1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#region
 
using System;
using System.Collections;
using System.Data;
using CSFrameworkV5.Core;
using DevExpress.XtraGrid.Views.Grid;
 
#endregion
 
namespace CSFrameworkV5.Library.CommonClass
{
    /// <summary>
    ///     Dev GridView代理类
    /// </summary>
    public class DevGridView : ISummaryView
    {
        private GridView _view;
 
        /// <summary>
        ///     构造器
        /// </summary>
        /// <param name="view">GridView控件</param>
        public DevGridView(GridView view)
        {
            _view = view;
        }
 
        #region ISummaryView Members
 
        /// <summary>
        ///     GridView控件
        /// </summary>
        public object View => _view;
 
        public void ExportData(string format, string file)
        {
            if (format == "XLS") _view.ExportToXls(file);
 
            if (format == "PDF") _view.ExportToPdf(file);
        }
 
        /// <summary>
        ///     记录数
        /// </summary>
        public int RowCount => _view.RowCount;
 
        /// <summary>
        ///     当前选中的资料行
        /// </summary>
        public int FocusedRowHandle
        {
            get => _view.FocusedRowHandle;
            set => _view.FocusedRowHandle = value;
        }
 
        /// <summary>
        ///     数据源
        /// </summary>
        public object DataSource
        {
            get => _view.GridControl.DataSource;
            set
            {
                _view.GridControl.DataSource = null;
                _view.GridControl.DataSource = value;
            }
        }
 
        /// <summary>
        ///     获取指定资料行
        /// </summary>
        /// <param name="rowHandle">资料行索引</param>
        /// <returns></returns>
        public DataRow GetDataRow(int rowHandle)
        {
            return _view.GetDataRow(rowHandle);
        }
 
        /// <summary>
        ///     刷新数据源,重新显示数据
        /// </summary>
        public void RefreshDataSource()
        {
            _view.GridControl.RefreshDataSource();
        }
 
        public void MoveFirst()
        {
            _view.MoveFirst();
        }
 
        public void MovePrior()
        {
            _view.MovePrev();
        }
 
        public void MoveNext()
        {
            _view.MoveNext();
        }
 
        public void MoveLast()
        {
            _view.MoveLast();
        }
 
        public void SetFocus()
        {
            if (_view.GridControl.CanFocus) _view.GridControl.Focus();
        }
 
        public void BindingDoubleClick(EventHandler eventHandler)
        {
            _view.DoubleClick += eventHandler;
        }
 
        /// <summary>
        ///     资料行索引是否有效
        /// </summary>
        /// <param name="rowHandle">资料行索引</param>
        /// <returns></returns>
        public bool IsValidRowHandle(int rowHandle)
        {
            return _view.IsValidRowHandle(rowHandle);
        }
 
        /// <summary>
        ///     刷新资料行的数据
        /// </summary>
        /// <param name="rowHandle">资料行索引</param>
        public void RefreshRow(int rowHandle)
        {
            _view.RefreshRow(rowHandle);
        }
 
        public void RemoveRow(int rowHandle)
        {
            if (_view.IsValidRowHandle(rowHandle))
            {
                var row = _view.GetDataRow(rowHandle);
 
                if (_view.GridControl.DataSource is DataTable)
                {
                    var dt = _view.GridControl.DataSource as DataTable;
                    dt.Rows.Remove(row); //删除数据源的记录
                    dt.AcceptChanges();
                }
                else if (_view.GridControl.DataSource is IList)
                {
                    var dt = _view.GridControl.DataSource as IList;
                    dt.Remove(row); //删除数据源的记录                    
                }
                else
                {
                    _view.DeleteRow(rowHandle); //删除视图的记录                    
                }
            }
        }
 
        #endregion
    }
}