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控件相关推荐

  1. DevExpress GridControl 控件中GridView 加组,加行

    DevExpress GridControl 控件是经常会用到  加组 加行功能 扩展方法 public static class Tools {/// <summary>/// 加组// ...

  2. Devexpress控件中gridcontrol Drag a column header here to group by that column 更换

    参照网站:http://documentation.devexpress.com/#WPF/DevExpressXpfGridDataViewBase_RuntimeLocalizationStrin ...

  3. DevExpress的GridControl控件筛选行自动筛选模式

    DevExpress的GridControl控件筛选行过滤行自动筛选过滤模式修改为"包含"模式 方法: 设置列的过滤属性为"包含",属性值为枚举类型 forea ...

  4. Developer Express控件组合中的GridControl控件,如何自动显示每一行的序号

    Developer Express控件组合中的GridControl控件,如何自动显示每一行的序号? 比方说有10条数据记录,我要在记录旁边显示1.2.3.4.这样的数字. 但是,如果更改了数据记录的 ...

  5. 玩转控件:对Dev中GridControl控件的封装和扩展

    清明节 清明时节雨纷纷 路上行人欲断魂 借问酒家何处有 牧童遥指杏花村 又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动.... 转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一 ...

  6. dev treeview控件_在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件

    DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...

  7. DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项

    场景 DevExpress的下拉框控件ComboBoxEdit控件的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1028 ...

  8. DevExpress的下拉框控件ComboBoxEdit控件的使用

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  9. Winform中使用DevExpress时给控件添加子控件的方法

    场景 在Winform中使用DevExpress时经常使用PanelControl控件用来进行布局设计,因此需要在代码中生成控件并添加子控件. 实现 一种是设置要添加的自控件的Parent属性为容器控 ...

最新文章

  1. Spring 配置标签——util标签
  2. Retrofit解析网页Json数据简单实例
  3. java 信使服务_java – 自行车信使/ TSPPD与OptaPlanner
  4. Android数据存储之SQLite
  5. solidity开发以太坊代币智能合约
  6. 第三十六期:如果把线程当作一个人来对待,所有问题都瞬间明白了
  7. 数的计算(洛谷-P1028)
  8. idea自动构建web项目_构建Web应用程序以自动执行系统管理员任务
  9. 大数据如何学习 cda认证_大数据学习之学习要求
  10. Keil MDK使用方法
  11. java 8 64_java8离线安装包64位
  12. QT利用UDP实现简单群聊系统
  13. MySQL数据库中多表联合查询
  14. python 单词拆音节_基于Trie树进行拆分字符串变成拼音音节(一):构建拼音音节模型...
  15. 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
  16. uniapp开发微信公众号(h5)项目如何引入微信jssdk,分享,扫一扫
  17. SPARC架构下的反汇编(一)——SPARC简介
  18. 【MySQL练习】数据查询(02)-简易版
  19. 华为数字化转型之道 结语 数字化转型的8个成功要素
  20. 单元测试-xUnit

热门文章

  1. html 图片剪裁压缩,HTML5 canvas实现图片拉伸、压缩与裁剪
  2. sql between包括两端吗_SQL简单查询
  3. php简单网站源码包含数组_PHP无限分级阶梯递归数组排列 以及多层嵌套数组在网页中的解析源码...
  4. python 发送邮件附件很慢_python下smtpsendmail发送特别慢
  5. 输入一个正整数求所有素数因子_一个数如果恰好等于它的因子之和,这个数就称为完数。编写应用程序求1000以内所有的完数...
  6. HTML怎么在li中加select标签,自定义UL LI选择框似乎在其他HTML元素后面
  7. 如何挑选一款合适的POE工业级交换机?
  8. 飞畅科技-千兆/百兆/核心/PoE/光纤交换机选型指南
  9. 【渝粤教育】广东开放大学 Photoshop 图像处理 形成性考核 (24)
  10. 集团bim对集团项目服务器,BIM再添一员,五洋建设集团BIM项目组举行成立仪式