




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using DevExpress.XtraEditors;using DevExpress.XtraGrid.Columns;using DevExpress.XtraGrid.Views.Base;using DevExpress.XtraGrid.Views.BandedGrid;using DevExpress.XtraEditors.Repository;namespace XtraGridDemo1 public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm public XtraForm1() InitializeComponent(); /首先拖到窗体上一个GridControl,在表格上点击“Click here to change view”链接,在弹出菜单中选择“convert to”-“AdvBandedGridView”。 InitGrid(); private void XtraForm1_Load(object sender, EventArgs e) /初始化表格 private void InitGrid() / advBandedGridView1是表格上的默认视图,注意这里声明的是:BandedGridView BandedGridView view = advBandedGridView1 as BandedGridView; view.BeginUpdate(); /开始视图的编辑,防止触发其他事件 view.BeginDataUpdate(); /开始数据的编辑 view.Bands.Clear(); /修改附加选项 view.OptionsView.ShowColumnHeaders = false; /因为有Band列了,所以把ColumnHeader隐藏 view.OptionsView.ShowGroupPanel = false; /如果没必要分组,就把它去掉 view.OptionsView.EnableAppearanceEvenRow = false; /是否启用偶数行外观 view.OptionsView.EnableAppearanceOddRow = true; /是否启用奇数行外观 view.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never; /是否显示过滤面板 view.OptionsCustomization.AllowColumnMoving = false; /是否允许移动列 view.OptionsCustomization.AllowColumnResizing = false; /是否允许调整列宽 view.OptionsCustomization.AllowGroup = false; /是否允许分组 view.OptionsCustomization.AllowFilter = false; /是否允许过滤 view.OptionsCustomization.AllowSort = true; /是否允许排序 view.OptionsSelection.EnableAppearanceFocusedCell = true; /? view.OptionsBehavior.Editable = false; /是否允许用户编辑单元格 /添加列标题 GridBand bandID = view.Bands.AddBand(ID); bandID.Visible = false; /隐藏ID列 GridBand bandName = view.Bands.AddBand(姓名); GridBand bandSex = view.Bands.AddBand(性别); GridBand bandBirth = view.Bands.AddBand(出生日期); GridBand bandScore = view.Bands.AddBand(分数); GridBand bandMath = bandScore.Children.AddBand(数学); GridBand bandChinese = bandScore.Children.AddBand(语文); GridBand bandEnglish = bandScore.Children.AddBand(英语); GridBand bandSubTotal = bandScore.Children.AddBand(小计); GridBand bandRemark = view.Bands.AddBand(备注); /列标题对齐方式 bandName.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandSex.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandBirth.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandScore.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandMath.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandChinese.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandEnglish.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandSubTotal.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandRemark.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; /模拟几个数据 List listDataSource = new List(); listDataSource.Add(new Record(1, 张三, 男, Convert.ToDateTime(1989-5-6), 115.5f, 101, 96, ); listDataSource.Add(new Record(2, 李四, 女, Convert.ToDateTime(1987-12-23), 92, 85, 87, ); listDataSource.Add(new Record(3, 王五, 女, Convert.ToDateTime(1990-2-11), 88, 69, 41.5f, ); listDataSource.Add(new Record(4, 赵六, 男, Convert.ToDateTime(1988-9-1), 119, 108, 110, 备注行); /绑定数据源并显示 gridControl1.DataSource = listDataSource; gridControl1.MainView.PopulateColumns(); /小计这一列因为没绑定数据源,所以需要手动添加 /(有点复杂,慢慢看吧) string fieldNames = new string SubTotal ; GridColumn column; /声明单列 column = view.Columns.AddField(fieldNames0); /添加一个数据字段 column.VisibleIndex = view.Columns.Count - 1; /设置该列在编辑视图时的显示位置(倒数第二列) column.UnboundType = DevExpress.Data.UnboundColumnType.Decimal; column.OptionsColumn.AllowEdit = false; /此列不可编辑 column.Visible = true; view.Columns.Add(column); /视图中添加一列 /绑定事件,当分数改变时小计也跟着变 /(好像只有在绑定事件里才能改变该单元格数值,直接修改无效) view.CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(advBandedGridView1_CustomUnboundColumnData); /性别列绑定ComboBox RepositoryItemComboBox riCombo = new RepositoryItemComboBox(); riCombo.Items.AddRange(new string 男, 女 ); gridControl1.RepositoryItems.Add(riCombo); view.ColumnsSex.ColumnEdit = riCombo; /出生年月列绑定Date RepositoryItemDateEdit riDate = new RepositoryItemDateEdit(); gridControl1.RepositoryItems.Add(riDate); view.ColumnsBirth.ColumnEdit = riDate; /分数列绑定SpinEdit RepositoryItemSpinEdit riSpin = new RepositoryItemSpinEdit(); gridControl1.RepositoryItems.Add(riSpin); view.ColumnsMath.ColumnEdit = riSpin; view.ColumnsChinese.ColumnEdit = riSpin; view.ColumnsEnglish.ColumnEdit = riSpin; /备注列绑定MemoExEdit RepositoryItemMemoExEdit riMemoEx = new RepositoryItemMemoExEdit(); gridControl1.RepositoryItems.Add(riMemoEx); view.ColumnsRemark.ColumnEdit = riMemoEx; /小计列添加汇总 view.OptionsView.ShowFooter = true; /显示表格页脚 view.ColumnsSubTotal.SummaryItem.FieldName = SubTotal; view.ColumnsSubTotal.SummaryItem.DisplayFormat = 0:f2; view.ColumnsSubTotal.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Average; /将标题列和数据列对应 view.ColumnsID.OwnerBand = bandID; view.ColumnsName.OwnerBand = bandName; view.ColumnsSex.OwnerBand = bandSex; view.ColumnsBirth.OwnerBand = bandBirth; view.ColumnsMath.OwnerBand = bandMath; view.ColumnsChinese.OwnerBand = bandChinese; view.ColumnsEnglish.OwnerBand = bandEnglish; view.ColumnsSubTotal.OwnerBand = bandSubTotal; view.ColumnsRemark.OwnerBand = bandRemark; view.EndDataUpdate();/结束数据的编辑 view.EndUpdate(); /结束视图的编辑 / 计算小计 private float calcSubTotal(float math, float chinese, float english) return math + chinese + english; private void advBandedGridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) ColumnView colView = sender as ColumnView; if (e.Column.FieldName = SubTotal & e.IsGetData) e.Value = calcSubTotal( Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.ColumnsMath), Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.ColumnsChinese), Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.ColumnsEnglish); #region 运行时绑定到实现Ilist接口的数据源 public class Record int id; DateTime birth; string name, sex, remark; float math, chinese, english; public Record(int id, strin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高考语文二轮复习专题2小说阅读突破练9复合文本阅读的考查方式
- 中国人的健康现状
- 绿茶冲泡技术课件
- 井下透水安全培训
- 重症监护室术后健康宣教指南
- 关于超额预定的培训方案
- 【课件】+声音的产生与传播(教学课件)2024-2025学年初中物理人教版(2024)八年级上册+
- 珠宝门店黄金培训
- 学校领导安全培训
- 2025年深远海风电场建设规划与海上风能资源评估报告
- 2024年江苏省响水县卫生局公开招聘试题带答案
- 2025年河北省高考招生统一考试高考真题地理试卷(真题+答案)
- 2025春国家开放大学《毛概》终考大作业答案
- 疲劳恢复物理手段-洞察及研究
- 人教版三年级数学下学期期末复习试卷含答案10套
- 天津市四校联考2023-2024学年高一下学期7月期末考试化学试卷(含答案)
- 2025年河北省中考学易金卷地理试卷(原创卷)及参考答案
- 2025年时政100题(附答案)
- 2025年安全生产月查找身边安全隐患及风险控制专题培训课件
- CJ/T 328-2010球墨铸铁复合树脂水箅
- BIM技术在建筑项目施工工艺优化中的应用报告
评论
0/150
提交评论