GridControl詳解(一)原汁原味的表格展示
Dev控件中的表格控件GridControl控件非常強大。不過,一些細枝末節的地方有時候用起來不好找挺討厭的。使用過程中,多半借助Demo和英文幫助文檔。網上具體的使用方法也多半零碎。偶遇一個簡單而且詳細的使用文檔。好記性不如爛筆頭!轉載過來,整理整理發出來做個記錄,總共有十個小節。做的非常精細,非常感謝原作者。
插件所在位置

使用時拖拽過來,如下所示即使拖拽過來原封不動的樣子:



在程序中寫入構建一個表格的代碼:
private DataTable InitDt() { DataTable dt = new DataTable("個人簡歷"); dt.Columns.Add("id",typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("sex", typeof(int)); dt.Columns.Add("address", typeof(string)); dt.Columns.Add("aihao", typeof(string)); dt.Columns.Add("photo", typeof(string)); dt.Rows.Add(new object[] { 1, "張三", 1, "東大街6號", "看書", "" }); dt.Rows.Add(new object[] { 1, "王五", 0, "西大街2號", "上網,游戲", "" }); dt.Rows.Add(new object[] { 1, "李四", 1, "南大街3號", "上網,逛街", "" }); dt.Rows.Add(new object[] { 1, "錢八", 0, "北大街5號", "上網,逛街,看書,游戲", "" }); dt.Rows.Add(new object[] { 1, "趙九", 1, "中大街1號", "看書,逛街,游戲", "" }); return dt; }
書寫gridControl1綁定數據方法:
private void BindDataSource(DataTable dt) { //綁定DataTable gridControl1.DataSource = dt; //綁定DataSet //gridControl1.DataSource = ds; //gridControl1.DataMember = "表名"; }
程序調用:BindDataSource(InitDt());
呈現結果如下:

GridControl詳解(二)表格的列名配置
點擊Run Designer控件上的按鈕,彈出視圖設計窗口:

列配置:


我們配置完列名后,會發現設計視圖發生了變化:

運行結果:

GridControl詳解(三)列數據的格式設置

為了測試方便,我們加入新的3列,格式分別是數據,時間,字符串。代碼增加下列部分:
//格式增加 dt.Columns.Add("數據",typeof(decimal)); dt.Columns.Add("時間",typeof(DateTime)); dt.Columns.Add("自定義",typeof(string)); dt.Rows.Add(new object[] { 1, "張三", 1,"東大街6號","看書","",-52.874,"2011-8-5 17:52:55","###" }); dt.Rows.Add(new object[] { 1, "王五", 0,"西大街2號","上網,游戲","", -37.257,"2011-8-5 17:52:55" }); dt.Rows.Add(new object[] { 1, "李四", 1,"南大街3號","上網,逛街","", -54.254,"2011-8-9 17:52:55" }); dt.Rows.Add(new object[] { 1, "錢八", 0,"北大街5號","上網,逛街,看書,游戲","",-35.127,"2011-8-9 17:52:55" }); dt.Rows.Add(new object[] { 1,"趙九", 1,"中大街1號","看書,逛街,游戲","",-29.548,"2011-8-9 20:52:55" });
給gridControl1增加3列,對應上述三列。
數據:

具體數據公式可以查看輸入控件的MASK設置器,里面有全部的格式公式:


運行結果:

時間:


自定義:


事件轉換:
概念明確:
1. gridControl1的每一列原始數據是Value,但是顯示數據是 DisplayText,默認DisplayText的值即是Value通過DisplayFormat轉換之后的值。
2. gridControl下的事件一般是包含表格GridView切換,點擊,更改的事件,用的不多;每一個GridView下的事件包含行列處理,菜單顯示,分組排序等事件,我們常用。(所有在使用事件時,一定要明確是control事件還是view事件)
GridView存在事件:自定義列顯示事件

增加事件:
private voidgridView1_CustomColumnDisplayText(objectsender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgse) { if(e.Column.FieldName =="sex") { switch(e.Value.ToString().Trim()) { case"1": e.DisplayText = "男"; break; case"0": e.DisplayText = "女"; break; default: e.DisplayText = ""; break; } } }
顯示結果:

