DevExpress控件之GridControl控件
DevExpress控件之GridControl控件
http://blog.sina.com.cn/s/blog_6769068d0100iucx.html
1. 设置数据源:
string sql = "select fid,fname from dual";
DataTable dt = DALUse.Query(sql).Tables[0];
gridControl1.DataSource = dt;
*:Daluse是项目数据库连接基类,不用特别理会
2.绑定字段:
这部分工作主要是在Designer中进行的,dev的Designer设计器提供了非常方便的设置方式.我么可以省去敲代码,直接在设计器中就可以完成了.在左边选Columns,添加完列以后,在列的FieleName属性添加你要绑定列的字段名(ps:比如我的连接SQL语句是:select
fid,fname from dual.我想要把fid绑定到列1.那就在列1的FieldName属性写FID就可以了
),这里有非常重要的一点,对于Oracle数据库,所有的在设计器里写的程序中的字段名必须大写,否则可能绑定不上字段,sqlserver没有这个限制.通过代码其实也可以实现,具体代码如下:
gridView1.Columns[0].FieldName = "FID";
*:gridcontrol只用在设置数据源,以后的操作大多都有gridview这个控件了.他们是一体的,可以在页面的设计代码中找到将他们关联的一句话,这是系统自动写的:gridcontrol1.mainview=this.gridview1.
2. 模板列的设置:
模板列可以很轻松的让用户实现在表格中进行查找编辑.
同样,这部分工作在dev的Designer中进行.在左边选In-Place Editor
Repository,上面的ADD提供了比较丰富的模板列类型,从中选取一个就可以了.模板列建好以后就要和我们当前有的数据列进行绑定了.返回到Columns中,假如列1是我们想设定的,在他的属性中找到ColumnEdit.选择我们加进去的模板列就可以了.对于模板列我们最常用的还是LookUpEdit.
这里简单说下他的设置和用法:
LookUpEdit是弹出的一个小的grid,从它里面我们可以实现自动筛选里面的信息.
首先从In-Place Editor
Repository中添加LookUpEdit.取名为Re1.然后.在他的Columns属性中添加3列.Caption依次为:编号,姓名,性别.FieldName依次为:FID,FNAME,FSEX.然后将Re1的NullText设置成空.
AutoSearchColumnIndex属性设置为2.ImmediatePopup属性设置为True.
SearchMode设置为OnlyInPopup.
然后将这个模板列附加到我们上面提到的列1(也就是将列1的ColumnEdit属性设成Re1)
最后我们还要在代码里面给Re1绑定数据源和显示项.
Re1.DataSource = DALUse.Query("select fid,fname,fsex from dual").Tables[0];
Re1.DisplayMember = "FSEX";
Re1.ValueMember = "FNAME";
*:对于Oracle数据库字段一定要用大写,切记!!
至此,我们的LookUpEdit模板列就设置完成了,它现在已经实现了通过性别列检索,然后将姓名列附到我们的列1上.
对于LookUpEdit可以实现过滤主要是AutoSearchColumnIndex和SearchMode属性.可以参见帮助知道它们的用法:
ms-help://DevExpress.NETv7.2/DevExpress.XtraEditors/DevExpressXtraEditorsControlsSearchModeEnumtopic.htm
Ps:
//去掉上面的筛选条
gridView1.OptionsView.ShowGroupPanel = false;
//设某一列只读或者不可编辑
gridView1.Columns[0].OptionsColumn.AllowEdit = false;
gridView1.Columns[0].OptionsColumn.ReadOnly = false;
//设某一列文字和标题局中显示
gridView1.Columns[0].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
gridView1.Columns[0].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
//去掉某一列上面的自动筛选功能(Filter)
gridView1.Columns[0].OptionsFilter.AllowAutoFilter = false;
gridView1.Columns[0].OptionsFilter.AllowFilter = false;
gridView1.Columns[0].OptionsFilter.ImmediateUpdateAutoFilter = false;
//设置冻结列(左冻结)
gridView1.Columns[0].Fixed= DevExpress.XtraGrid.Columns.FixedStyle.Left;
//得到单元格数据(0行0列)
string ss=gridView1.GetRowCellDisplayText(0, gridView1.Columns[0]);
string ss = gridView1.GetRowCellValue(0, gridView1.Columns[0]);
//设置单元格数据(将0行0列的单元格赋值123)
gridView1.SetRowCellValue(0, gridView1.Columns[0], "123");
//手动添加dev的列
DevExpress.XtraGrid.Columns.GridColumn Col1=new DevExpress.XtraGrid.Columns.GridColumn ();
Col1.FieldName="FID";
Col1.Visible=true;
Col1.VisibleIndex=gridView1.Columns.Count;
gridView1.Columns.Add(Col1);
//设置自动增加的行号,需要先添加给gridview添加事件CustomDrawRowIndicator
private void gridview_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
//添加datatable数据行,数据列
DataTable dt = new DataTable();
dt.Columns.Add("Col1");
DataRow dr = dt.NewRow();
dr[0] = "123";
dt.Rows.Add(dr);
*以上这些都可以在Designer中进行设置,而不用去敲代码
对于第三方控件的整体修改和保存,具体说明如下:
1. 删除: (修改了dgvdel里的datagridviewdel方法)
public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Grid.GridView Mydgv)
{
if (MessageBox.Show("你确定要删除选中的记录吗?", "删除提示", MessageBoxButtons.YesNo,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes)
{
int iSelectRowCount = Mydgv.SelectedRowsCount;
if (iSelectRowCount > 0)
{
Mydgv.DeleteSelectedRows();
}
}
}
2. 新增: (对于新增,其本身的AddNewRow方法就可以做到)
private void btn_add_Click(object sender, EventArgs e)
{
gridView1.AddNewRow();
}
具体如果对于新加行还有什么特别的设置,可以在它gridView1_InitNewRow事件中填写:
private void gridView1_InitNewRow(object sender,
DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
{
ColumnView View = sender as ColumnView;
View.SetRowCellValue(e.RowHandle, View.Columns[0],
gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2),
gridView1.Columns[0])); //复制最后一行的数据到新行
View.SetRowCellValue(e.RowHandle, View.Columns[1],
gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2),
gridView1.Columns[1])); //复制最后一行的数据到新行
}
3. 保存
(第三方控件提供的RefreshData和RefreshDataSource方法对于保存数据都不好使,最后还是使用了Dgvsave的datagridviewsave方法,用这个方法就可以)
注:代码中出现多gridView1全为第三方控件的gridView.
对于这个第三方控件,我们也有好多东西还在研究!希望大家通过我们的讲解能对这个控件有个初步的认识,并且我们大家一起交流学习!
转载于:https://www.cnblogs.com/wpf123/archive/2011/03/06/2052918.html
DevExpress控件之GridControl控件相关推荐
- DevExpress GridControl 控件中GridView 加组,加行
DevExpress GridControl 控件是经常会用到 加组 加行功能 扩展方法 public static class Tools {/// <summary>/// 加组// ...
- Devexpress控件中gridcontrol Drag a column header here to group by that column 更换
参照网站:http://documentation.devexpress.com/#WPF/DevExpressXpfGridDataViewBase_RuntimeLocalizationStrin ...
- DevExpress的GridControl控件筛选行自动筛选模式
DevExpress的GridControl控件筛选行过滤行自动筛选过滤模式修改为"包含"模式 方法: 设置列的过滤属性为"包含",属性值为枚举类型 forea ...
- Developer Express控件组合中的GridControl控件,如何自动显示每一行的序号
Developer Express控件组合中的GridControl控件,如何自动显示每一行的序号? 比方说有10条数据记录,我要在记录旁边显示1.2.3.4.这样的数字. 但是,如果更改了数据记录的 ...
- 玩转控件:对Dev中GridControl控件的封装和扩展
清明节 清明时节雨纷纷 路上行人欲断魂 借问酒家何处有 牧童遥指杏花村 又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动.... 转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一 ...
- dev treeview控件_在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件
DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...
- DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项
场景 DevExpress的下拉框控件ComboBoxEdit控件的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1028 ...
- DevExpress的下拉框控件ComboBoxEdit控件的使用
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- Winform中使用DevExpress时给控件添加子控件的方法
场景 在Winform中使用DevExpress时经常使用PanelControl控件用来进行布局设计,因此需要在代码中生成控件并添加子控件. 实现 一种是设置要添加的自控件的Parent属性为容器控 ...
最新文章
- Spring 配置标签——util标签
- Retrofit解析网页Json数据简单实例
- java 信使服务_java – 自行车信使/ TSPPD与OptaPlanner
- Android数据存储之SQLite
- solidity开发以太坊代币智能合约
- 第三十六期:如果把线程当作一个人来对待,所有问题都瞬间明白了
- 数的计算(洛谷-P1028)
- idea自动构建web项目_构建Web应用程序以自动执行系统管理员任务
- 大数据如何学习 cda认证_大数据学习之学习要求
- Keil MDK使用方法
- java 8 64_java8离线安装包64位
- QT利用UDP实现简单群聊系统
- MySQL数据库中多表联合查询
- python 单词拆音节_基于Trie树进行拆分字符串变成拼音音节(一):构建拼音音节模型...
- 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
- uniapp开发微信公众号(h5)项目如何引入微信jssdk,分享,扫一扫
- SPARC架构下的反汇编(一)——SPARC简介
- 【MySQL练习】数据查询(02)-简易版
- 华为数字化转型之道 结语 数字化转型的8个成功要素
- 单元测试-xUnit
热门文章
- html 图片剪裁压缩,HTML5 canvas实现图片拉伸、压缩与裁剪
- sql between包括两端吗_SQL简单查询
- php简单网站源码包含数组_PHP无限分级阶梯递归数组排列 以及多层嵌套数组在网页中的解析源码...
- python 发送邮件附件很慢_python下smtpsendmail发送特别慢
- 输入一个正整数求所有素数因子_一个数如果恰好等于它的因子之和,这个数就称为完数。编写应用程序求1000以内所有的完数...
- HTML怎么在li中加select标签,自定义UL LI选择框似乎在其他HTML元素后面
- 如何挑选一款合适的POE工业级交换机?
- 飞畅科技-千兆/百兆/核心/PoE/光纤交换机选型指南
- 【渝粤教育】广东开放大学 Photoshop 图像处理 形成性考核 (24)
- 集团bim对集团项目服务器,BIM再添一员,五洋建设集团BIM项目组举行成立仪式