




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北承德平泉市公开招聘社区工作者97人模拟试卷及答案详解(名师系列)
- 2025年福建省泉州市华侨大学招标与采购管理中心招聘1人考前自测高频考点模拟试题及答案详解一套
- 2025年安徽省储备粮管理有限公司第一批次招聘1人模拟试卷及完整答案详解1套
- 2025年甘肃省民航机场集团校园招聘考前自测高频考点模拟试题及一套参考答案详解
- 2025年安庆医药高等专科学校面向校园招聘21人考前自测高频考点模拟试题及答案详解参考
- 2025年西安经开第七小学招聘数学教师考前自测高频考点模拟试题及1套参考答案详解
- 2025年安徽宿州萧县云水水务社会招聘9人模拟试卷完整参考答案详解
- 2025年射频识别(RFID)技术在工业互联网平台下的设备寿命评估与设备更新策略报告
- 2025年教育游戏化在特殊教育儿童心理辅导中提高学生适应能力的实践报告
- 2025年芜湖经开区招聘35人模拟试卷及答案详解一套
- 2025广东珠海市下半年市直机关事业单位招聘合同制职员37人考试参考试题及答案解析
- 软件开发驻场合同协议
- 音乐培训机构招生
- 生产成本控制及预算管理表格模板
- 动漫艺术概论考试卷子及答案
- 山东省青岛市即墨区实验学校2025-2026学年九年级上学期开学考试英语试题(含答案)
- 浙江省浙南名校联盟2025-2026学年高二上学期开学返校联考英语试卷(含音频)
- 知道智慧树林业工程前沿进展满分测试答案
- 2025年国企中层干部竞聘笔试题及答案
- 材料返款协议书
- 工程机械行业发展深度报告
评论
0/150
提交评论