DevExpress使用教程:GridView經(jīng)驗(yàn)小結(jié)
下面是筆者自己總結(jié)的使用 DevExpress Gridview 的一些經(jīng)驗(yàn)小結(jié),分享給大家:
【DXperience Universal Suite下載】
1、去除 GridView 頭上的 "Drag a column header here to group by that column"
--> 點(diǎn)擊 Run Designer -> 找到:OptionView -> 將 ShowGroupPanel : 設(shè)置為 false ;
2、如何顯示出 GridView 自帶的搜索功能
--> 點(diǎn)擊 Run Designer -> 找到: OptionsFind -> 將AlwaysVisible : 設(shè)置為 True
3、如何將GridView的大小自適應(yīng)窗體的大小
--> 右鍵 GridView 控件 -> 屬性 -> 找到 Dock : 設(shè)置為 Fill
4、當(dāng)GridView數(shù)據(jù)源發(fā)生變化時(shí),如何更改GridView所"綁定的值"
Code注:其實(shí)就是重新創(chuàng)建了一個(gè)GridView的實(shí)例。
1 gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(gridControl1); 2 gridControl1.MainView = gridView1; 3 gridView1.OptionsView.ShowGroupPanel = false; 4 gridView1.OptionsFind.AlwaysVisible = true; 5 gridControl1.DataSource = dt;
5、在GridControl 中添加checkbox復(fù)選框
--> gridView -> run designer -> columns -> 添加一列(如果沒(méi)有的話) 然后如圖設(shè)置-- > 另外當(dāng)我們需要?jiǎng)討B(tài)綁定grid數(shù)據(jù)時(shí),DataTable 中列的名字要和我們?cè)趃ridview中設(shè)置的FileName名字要移植,不然數(shù)據(jù)是顯示不出來(lái)的。
6、讓GridView 行 不可編輯
-- > Run Designer -> OptionsBehavior -> Editable : False
7 、在GridView 行中添加Button按鈕
public void ButtonInitial() { RepositoryItemButtonEdit rib = new RepositoryItemButtonEdit(); rib.TextEditStyle = TextEditStyles.HideTextEditor; rib.Buttons[0].Kind = ButtonPredefines.Glyph; rib.ButtonClick += rib_ButtonClick; rib.Buttons[0].Caption = "詳細(xì)信息"; rib.Buttons[0].Visible = true; gridView1.Columns["DOWNSTATE"].ColumnEdit = rib; } void rib_ButtonClick(object sender, ButtonPressedEventArgs e) { int rowindex = gridView1.FocusedRowHandle; DataRow row = gridView1.GetDataRow(rowindex); }
8 、GirdView行添加Button按鈕之后,觸發(fā)事件不可用.
將GridView Editable 設(shè)置為T(mén)rue 讓GridView可編輯,如果不想讓它可編輯的話,在一列一列的進(jìn)行設(shè)置.原因是:將GridView設(shè)置為不可編輯之后,那么鼠標(biāo)點(diǎn)擊Button那一列只是選中而已,不會(huì)進(jìn)行觸發(fā)事件.
9 、GridView 設(shè)置選中行的顏色
GridView : Run Designer -> Appearences : selectRow & FocusedRow (兩項(xiàng)都要設(shè)置)
BackColor : MediumSlateBlue 背景色
ForeColor : White 前景色 字體顏色
10 、GridView 設(shè)置標(biāo)題行顏色
GridView : Run Designer -> Appearences : HeadPanel 在這個(gè)屬性組中都是關(guān)于標(biāo)題行的設(shè)置,再次不做詮釋.
當(dāng)設(shè)置完HeadPanel 其實(shí)并沒(méi)有結(jié)束,是不顯示效果的, 還需要設(shè)置 GridControl 屬性中 LookAndFeel : Style 設(shè)置為ultraFlat , UseDefaultLookAndFeel 設(shè)置為 False .
11 、GridView 設(shè)置標(biāo)題行以及內(nèi)容行 數(shù)據(jù)居中
標(biāo)題行 10 所述 在HeadPanel 里有一個(gè)TextOptions 展開(kāi)之后 將HAlignment : Center
如果是將內(nèi)容行數(shù)據(jù)居中.有兩種方法 1 : 逐行設(shè)置 2 : 設(shè)置Appearences
1 : GridView -> Run Designer -> Columns -> AppearanceCell -> TextOptions 找到HAlignment : Center .
2 : GridView -> Run Designer -> Appearance -> ViewCaption -> TextOptions -> HAlignment : Center
12 、GridView添加CheckBox并支持多選操作.
GridView : Run Designer -> OptionsSelection -> MultiSelect : True MultiSelectMode : CheckBoxRowSelect
13 、GridView 添加序號(hào)列
GridView : Run Designer -> Event -> CustomDrawRowIndicator
在事件中添加代碼 :
e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; if (e.Info.IsRowIndicator) { if (e.RowHandle >= 0) { e.Info.DisplayText = (e.RowHandle + 1).ToString(); } else if (e.RowHandle < 0 && e.RowHandle > -1000) { e.Info.Appearance.BackColor = System.Drawing.Color.AntiqueWhite; e.Info.DisplayText = "G" + e.RowHandle.ToString(); } }
另外在 Run Desginer -> IndicatorWidth 設(shè)置序號(hào)列的寬度 一般30左右就比較適合一些了.
14 、單元格雙擊響應(yīng)
private void gridControl1_DoubleClick(object sender, EventArgs e) { MouseEventArgs arg = e as MouseEventArgs; if (arg == null) return; GridHitInfo hitInfo = gridView1.CalcHitInfo(new Point(arg.X, arg.Y));//獲取坐標(biāo)點(diǎn) if (hitInfo.RowHandle >= 0) { DataRow row = gridView1.GetDataRow(hitInfo.RowHandle); _list.Clear(); _list.Add(row[0].ToString()); gisResoureMonControl1.SetSelectResource(_list); } }
15 、獲取選中行的值
代碼:
private void gridData_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { _id = GWEntLib.Utilities.Mix.ConvertUtils.ToInt32(gridData.GetRowCellValu(e.FocusedRowHandle, "Id")); _emrFileReadList = EMRTemplateFileReadList.GetEMRTemplateFileReadList(_id); gridVersonData.DataSource = _emrFileReadList; }
響應(yīng)事件:FocusedRowChanged
獲取字段值:gridData.GetRowCellValue(e.FocusedRowHandle, "Id")
注意:FocusedRowChanged是Gridview的事件而不是gridControl的事件
gridControl與Gridview的區(qū)別:前者是容器,后者為視圖
16、將GridView 列表表頭固定,無(wú)Filter效果
17、DevExpress GridView 獲取當(dāng)前選中行的值。
1 int rowIndex = gridView1.FocusedRowHandle; 2 DataRow dr = gridView1.GetDataRow(rowIndex); 3 MessageBox.Show("課件 \"" + dr.ItemArray[0].ToString() + "\" 下載成功");
出處http://www.cnblogs.com/Albin/