GirdView1的常用屬性_第1頁
GirdView1的常用屬性_第2頁
GirdView1的常用屬性_第3頁
GirdView1的常用屬性_第4頁
GirdView1的常用屬性_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C#中g(shù)ridView常用屬性和技巧介紹 - 凌風(fēng)95時(shí)間 2014-08-15 00:37:00  博客園-所有隨筆區(qū)原文  1.隱藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; 2.得到當(dāng)前選定記錄某字段的值 sValue=Table.RowsgridView1.FocusedRowHandleFieldName.ToString(); 3.數(shù)據(jù)只讀 gridView1.OptionsBehavior.Editable=false; 4.不顯示MasterDetailV

2、iew gridView1.OptionsDetail.EnableMasterViewMode=false; 5.修改最上面的GroupPanel內(nèi)容 gridView1.GroupPanelText="柳生飄絮" 6.設(shè)置數(shù)據(jù)源: gridControl1.DataSource = dt; 綁定每一列的FiledName-屬性 對(duì)于Oracle數(shù)據(jù)庫,所有的在設(shè)計(jì)器里寫的程序中的字段名必須大寫,否則可能綁定不上字段,sqlserver沒有這個(gè)限制. 7.讀寫拷貝權(quán)限設(shè)置 只讀不可拷貝: ColumnViewOptionsBehavior.Editable = False

3、 只讀可拷貝: ColumnViewOptionsBehavior.Editable = True OptionsColumn.AllowEdit = True OptionsColumn.ReadOnly = True 可編輯: ColumnViewOptionsBehavior.Editable = True OptionsColumn.AllowEdit = True OptionsColumn.ReadOnly = False 8.模板列的設(shè)置: 到Columns中,在他的屬性中找到ColumnEdit. 以LookUpEdit為例: 首先從Designer左邊菜單In-Place E

4、ditor Repository中添加LookUpEdit.取名為Re1.然后.在他的Columns屬性中添加3列.Caption依次為:編號(hào),姓名,性別.FieldName依次為:FID,FNAME,FSEX.然后將Re1的NullText設(shè)置成空. AutoSearchColumnIndex屬性設(shè)置為2.ImmediatePopup屬性設(shè)置為True. SearchMode設(shè)置為OnlyInPopup. 然后將這個(gè)模板列附加到我們上面提到的列1(也就是將列1的ColumnEdit屬性設(shè)成Re1) 最后我們還要在代碼里面給Re1綁定數(shù)據(jù)源和顯示項(xiàng). Re1.DataSource = DALU

5、se.Query("select fid,fname,fsex from dual").Tables0; Re1.DisplayMember = "FSEX" Re1.ValueMember = "FNAME" 9.設(shè)某一列文字和標(biāo)題局中顯示 gridView1.Columns0.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; gridView1.Columns0.AppearanceCell.TextOptions.HA

6、lignment = DevExpress.Utils.HorzAlignment.Center; 10.去掉某一列上面的自動(dòng)篩選功能(Filter) gridView1.Columns0.OptionsFilter.AllowAutoFilter = false; gridView1.Columns0.OptionsFilter.AllowFilter = false; gridView1.Columns0.OptionsFilter.ImmediateUpdateAutoFilter = false; 11.設(shè)置凍結(jié)列(左凍結(jié)) gridView1.Columns0.Fixed= DevE

7、xpress.XtraGrid.Columns.FixedStyle.Left; 12.得到單元格數(shù)據(jù)(0行0列) string ss=gridView1.GetRowCellDisplayText(0, gridView1.Columns0); string ss = gridView1.GetRowCellValue(0, gridView1.Columns0); 13.設(shè)置單元格數(shù)據(jù)(將0行0列的單元格賦值123) gridView1.SetRowCellValue(0, gridView1.Columns0, "123"); 13.手動(dòng)添加dev的列 DevExpr

8、ess.XtraGrid.Columns.GridColumn Col1=new DevExpress.XtraGrid.Columns.GridColumn (); Col1.FieldName="FID" Col1.Visible=true; Col1.VisibleIndex=gridView1.Columns.Count; gridView1.Columns.Add(Col1); 14.設(shè)置自動(dòng)增加的行號(hào),需要先添加給gridview添加事件CustomDrawRowIndicator private void gridview_CustomDrawRowIndic

9、ator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e) if (e.Info.IsRowIndicator && e.RowHandle >= 0) e.Info.DisplayText = (e.RowHandle + 1).ToString(); 15.刪除: (修改了dgvdel里的datagridviewdel方法) public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Gr

10、id.GridView Mydgv) if (MessageBox.Show("你確定要?jiǎng)h除選中的記錄嗎?", "刪除提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) = DialogResult.Yes) int iSelectRowCount = Mydgv.SelectedRowsCount; if (iSelectRowCount > 0) Mydgv.DeleteSelectedRows(); 1

11、6. 新增: (對(duì)于新增,其本身的AddNewRow方法就可以做到) private void btn_add_Click(object sender, EventArgs e) gridView1.AddNewRow(); 具體如果對(duì)于新加行還有什么特別的設(shè)置,可以在它gridView1_InitNewRow事件中填寫: private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e) ColumnView View = sender as Column

12、View; View.SetRowCellValue(e.RowHandle, View.Columns0, gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns0); /復(fù)制最后一行的數(shù)據(jù)到新行 View.SetRowCellValue(e.RowHandle, View.Columns1, gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Col

13、umns1); /復(fù)制最后一行的數(shù)據(jù)到新行 17. 保存 (第三方控件提供的RefreshData和RefreshDataSource方法對(duì)于保存數(shù)據(jù)都不好使,最后還是使用了Dgvsave的datagridviewsave方法,用這個(gè)方法就可以) 18.特效:gridcontrol中有5種view 型式,普通的是gridview,然后分別為cardview、BandedView、Advanced BandedView、LayoutView;共5種。 1)、view組中把OptionView下的viewmode 設(shè)置成“Carousel”就達(dá)到這種“旋轉(zhuǎn)木馬”式的gridcontrol view

14、 特效了 2)、layoutView1.OptionsCarouselMode.PitchAngle 這個(gè)屬性決定“旋轉(zhuǎn)木馬”的pitch angle 螺距角; 螺旋角; 螺旋升角; 俯仰角; 傾角; 節(jié)錐半角 3)、Roll Angle 屬性決定著傾側(cè)角度 4)、指定數(shù)據(jù)源,顯示數(shù)據(jù): /顯示數(shù)據(jù) private void showData(List<Employee > list) DataTable dt = new DataTable("OneEmployee"); dt.Columns.Add("Caption", System.T

15、ype.GetType("System.String"); dt.Columns.Add("Department", System.Type.GetType("System.String"); dt.Columns.Add("PhotoName", System.Type.GetType("System.Byte"); for (int i = 0; i < list.Count; i+) DataRow dr = dt.NewRow(); dr"Caption" =

16、listi.Name; dr"Department" = listi.Department; string imagePath = "D:C#photos" + listi.PhotoPath; dr"PhotoName" = getImageByte(imagePath); dt.Rows.Add(dr); gridControl1.DataSource = dt; /返回圖片的字節(jié)流byte private byte getImageByte(string imagePath) FileStream files = new Fil

17、eStream(imagePath, FileMode.Open); byte imgByte = new byte files.Length ; files.Read(imgByte, 0, imgByte.Length); files.Close(); return imgByte; 19.檢查數(shù)據(jù)的有效性 在gridview的ValidateRow事件中加入檢查代碼: #region 檢查數(shù)據(jù) private void gridView1_ValidateRow(object sender, ValidateRowEventArgs e) GridView view = sender a

18、s GridView; view.ClearColumnErrors(); if (view.GetRowCellValue(e.RowHandle, "ReceiveDate") = DBNull.Value) e.Valid = false; view.SetColumnError(view.Columns"ReceiveDate", "必須指定日期"); #endregion 調(diào)用gridview.UpdateCurrentRow()方法執(zhí)行檢查 最常用的DevExpress Winform 4個(gè)代碼片段: 一 、GridCon

19、trol的刪除操作 private void rILinkEditInfoDel_Click(object sender, EventArgs e) if (XtraMessageBox.Show("請(qǐng)確定是否刪除當(dāng)前記錄?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes) DataRow row = gvInfos.GetDataRow(gvInfos.FocusedRowHandle); delByCode(row"Code".

20、ToString(); XtraMessageBox.Show("操作成功!"); 二、綁定非數(shù)據(jù)表中列 Hashtable ht = new Hashtable(); private void gridView6_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e) GridView View = sender as GridView; if (e.RowHandle >= 0) object needAlert = Vie

21、w.GetRowCellValue(e.RowHandle, View.Columns"needAlert"); if (needAlert != null & needAlert != DBNull.Value && needAlert.ToString().Trim() != "0" & View.GetRowCellValue(e.RowHandle, View.Columns"Value") != DBNull.Value) decimal AverValue = Convert.ToDecim

22、al(View.GetRowCellValue(e.RowHandle, View.Columns"Value"); object MinValue = View.GetRowCellValue(e.RowHandle, View.Columns"MinValue"); object MaxVlaue = View.GetRowCellValue(e.RowHandle, View.Columns"MaxValue"); if (MinValue != DBNull.Value & MinValue != null &

23、 MaxVlaue.ToString() != "" & MaxVlaue != DBNull.Value && MaxVlaue != null & MaxVlaue.ToString() != "") decimal gridColumn2 = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.Columns"MinValue"); decimal gridColumn1 = Convert.ToDecimal(View.GetRowC

24、ellValue(e.RowHandle, View.Columns"MaxValue"); if (gridColumn2 > AverValue | AverValue > gridColumn1) if (!ht.ContainsKey("pic") ht.Add("pic", GetImage(1); e.Value = ht"pic" / <summary> / 由資源文件獲取圖片 / </summary> / <param name="key"

25、;></param> / <returns></returns> byte GetImage(int key) Image img = DevExpress.Utils.Controls.ImageHelper.CreateImageFromResources(string.Format("RiverSys.Resources.0.gif", key.ToString(), typeof(RiverInfos).Assembly); return DevExpress.XtraEditors.Controls.ByteImageCo

26、nverter.ToByteArray(img, ImageFormat.Gif); / <summary> / 動(dòng)態(tài)根據(jù)條件設(shè)置行樣式 / </summary> / <param name="sender"></param> / <param name="e"></param> private void gridView6_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) Grid

27、View View = sender as GridView; if (e.RowHandle >= 0) object needAlert = View.GetRowCellValue(e.RowHandle, View.Columns"needAlert"); if (needAlert != null & needAlert != DBNull.Value && needAlert.ToString().Trim() != "0" & View.GetRowCellValue(e.RowHandle, View

28、.Columns"Value") != DBNull.Value) decimal AverValue = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.Columns"Value"); object MinValue = View.GetRowCellValue(e.RowHandle, View.Columns"MinValue"); object MaxVlaue = View.GetRowCellValue(e.RowHandle, View.Columns&

29、quot;MaxValue"); if (MinValue != DBNull.Value & MinValue != null & MaxVlaue.ToString() != "" & MaxVlaue != DBNull.Value && MaxVlaue != null & MaxVlaue.ToString() != "") decimal gridColumn2 = Convert.ToDecimal(MinValue); decimal gridColumn1 = Convert.T

30、oDecimal(MaxVlaue); if (gridColumn2 > AverValue | AverValue > gridColumn1) e.Appearance.ForeColor = Color.Red; e.Appearance.BackColor = Color.LightGray; 三、GridControl 中顏色選擇控件 private void gvMapColor_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs

31、 e) GridView view = sender as GridView; DataView dv = view.DataSource as DataView; if (e.IsGetData) string strVal = dve.ListSourceRowIndex"Color".ToString(); if (strVal != "") /e.Value = DevExpress.Utils.StyleLayout.ColorFromString(strVal); e.Value = Common.HexToColor(strVal); el

32、se /Color colorVal = DevExpress.Utils.StyleLayout.ColorFromString(e.Value.ToString(); Color colorVal = (Color)e.Value; dve.ListSourceRowIndex"Color" = Common.RGB_HEX(colorVal.ToArgb(); 四、關(guān)于 GridControl 驗(yàn)證示例 / <summary> / 初始化GridView,綁定數(shù)據(jù) / </summary> / <param name="pare

33、ntId"></param> private void GridViewBindData(string parentId) this.gridView1.Columns.Clear(); this.FDs= areaSetupActionHelper.getDsRegionByParentId(parentId); this.gridCArea.DataSource =this.FDs.Tables0.DefaultView; this.gridView1.Columns"id".VisibleIndex = -1; this.gridView1

34、.Columns"childCounts".VisibleIndex = -1; this.gridView1.Columns"reg_id".Caption = "區(qū)劃編號(hào)" this.gridView1.Columns"reg_name".Caption = "區(qū)劃名稱" this.gridView1.Columns"parent_id".Caption = "父區(qū)劃編號(hào)" this.gridView1.Columns"reg_desc&qu

35、ot;.Caption = "區(qū)劃描述" this.gridView1.Columns"parent_id".ImageIndex =1; this.gridView1.Columns"reg_desc".ImageIndex = 0; RepositoryItemTextEdit textEditReg_Id = new RepositoryItemTextEdit(); textEditReg_Id.Mask.EditMask =parentId+"file:/d2,3/" textEditReg_Id.Mas

36、k.MaskType = DevExpress.XtraEditors.Mask.MaskType.Regular; this.gridView1.Columns"reg_id".ColumnEdit = textEditReg_Id; this.gridView1.Columns"reg_desc".ColumnEdit = new RepositoryItemMemoExEdit(); TreeListNode node = this.treelArea.FocusedNode.ParentNode; string fid = node=null?&

37、quot;0":node.GetValue("RegID").ToString().Trim(); DataSet ds = areaSetupActionHelper.getDsRegionByParentId(fid); RepositoryItemLookUpEdit lookUEParent_Id = new RepositoryItemLookUpEdit(); lookUEParent_Id.Columns.Add(new LookUpColumnInfo("reg_id", 40, "區(qū)劃編號(hào)"); lookU

38、EParent_Id.Columns.Add(new LookUpColumnInfo("reg_name", 40, "區(qū)劃名稱"); lookUEParent_Id.DataSource = ds.Tables0.DefaultView; lookUEParent_Id.ValueMember = "reg_id" lookUEParent_Id.DisplayMember = "reg_id" this.gridView1.Columns"parent_id".ColumnEdit = l

39、ookUEParent_Id; / <summary> / gridView單元格驗(yàn)證的相關(guān)處理程序 / </summary> / <param name="sender"></param> / <param name="e"></param> private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventAr

40、gs e) if (e.Valid = false&this.gridView1.FocusedColumn.FieldName = "reg_id") e.ErrorText = "區(qū)劃編號(hào)不合法!n應(yīng)為父區(qū)劃編號(hào)加23位數(shù)據(jù)組成!" if (this.gridView1.FocusedColumn.FieldName = "reg_name") Regex reg=new Regex("u4e00-u9fa51,20"); Match m=reg.Match(e.Value.ToString().Tri

41、m(); if (m.Length != e.Value.ToString().Trim().Length) e.Valid = false; e.ErrorText = "區(qū)劃名稱應(yīng)為漢字n長度為1至20" private void gridView1_InvalidValueException(object sender, InvalidValueExceptionEventArgs e) if (MyDialog.Alert("您所填寫的內(nèi)容不符合規(guī)則n要放棄您剛才對(duì)此項(xiàng)所做的更改嗎?", "您所編輯的內(nèi)容不符合規(guī)則", Mes

42、sageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes) e.ExceptionMode = ExceptionMode.Ignore; / <summary> / gridView行驗(yàn)證的相關(guān)處理程序 / </summary> private void gridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e) string regid = this.gridView1.G

43、etRowCellValue(e.RowHandle, "reg_id").ToString().Trim(); string regName = this.gridView1.GetRowCellValue(e.RowHandle, "reg_name").ToString().Trim(); if ( regid.Length < 1) e.Valid = false; this.gridView1.SetColumnError(this.gridView1.Columns"reg_id", "請(qǐng)?zhí)顚憛^(qū)劃編號(hào)!&q

44、uot;, DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default); / e.ErrorText = "區(qū)劃名稱不能為空!" if (regName.Length < 1) e.Valid = false; this.gridView1.SetColumnError(this.gridView1.Columns"reg_name", "區(qū)劃名稱不能為空!", DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default

45、); private void gridView1_InvalidRowException(object sender, DevExpress.XtraGrid.Views.Base.InvalidRowExceptionEventArgs e) if (e.RowHandle >= 0) if (this.gridView1.GetRowCellValue(e.RowHandle, this.gridView1.Columns"reg_id").ToString().Trim() = "" | this.gridView1.GetRowCellV

46、alue(e.RowHandle, this.gridView1.Columns"reg_name").ToString().Trim() = "") if (MyDialog.Alert(" 您所填寫的內(nèi)容不符合規(guī)則n要放棄您剛才對(duì)此項(xiàng)所做的更改嗎?", "您所編輯的內(nèi)容不符合規(guī)則", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes) e.ExceptionMode = ExceptionMode.Ignore; else e

47、.ExceptionMode = ExceptionMode.NoAction; else e.ExceptionMode = ExceptionMode.Ignore; 關(guān)于XtraGrid的使用(GridControl小結(jié))來源:51編程網(wǎng)發(fā)布時(shí)間:2010-04-19Hits:146 DevExpress XtraGrid的使用(AspxGridControl小結(jié))收藏 自定義焦點(diǎn)行的方法: gridView_bcode.FocusedRowHandle = focuseRowInt; /通過設(shè)置GridView 的FocusedRowHandle屬性 view plaincopy to

48、 clipboardprint? /獲取焦點(diǎn)行任意單元格的數(shù)據(jù) ColumnView cv = (ColumnView)gridControl_Gongzi.FocusedView;/重新獲取此ID 否則無法從表頭連刪獲取不到id int focusedhandle = cv.FocusedRowHandle; object rowIdObj = gridView1.GetRowCellValue(focusedhandle, "id"); if (DBNull.Value != rowIdObj) FocusedRow_id = Convert.ToInt32(rowId

49、Obj); /獲取焦點(diǎn)行任意單元格的數(shù)據(jù) ColumnView cv = (ColumnView)gridControl_Gongzi.FocusedView;/重新獲取此ID 否則無法從表頭連刪獲取不到id int focusedhandle = cv.FocusedRowHandle; object rowIdObj = gridView1.GetRowCellValue(focusedhandle, "id"); if (DBNull.Value != rowIdObj) FocusedRow_id = Convert.ToInt32(rowIdObj); view

50、plaincopy to clipboardprint? /當(dāng)數(shù)據(jù)發(fā)生變化時(shí)執(zhí)行 private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e) int intRowHandle = e.RowHandle; FocusedRow_bumen = Convert.ToString(gridView1.GetRowCellValue(intRowHandle, "bumen"); FocusedRow_xingming = Convert.ToString(gridView

51、1.GetRowCellValue(intRowHandle, "xingming"); /FocusedRow_jibengongzi = Convert.ToDecimal(gridView1.GetRowCellValue(intRowHandle, "jibengongzi"); object rowJibengongziObj = gridView1.GetRowCellValue(intRowHandle, "jibengongzi"); if (DBNull.Value != rowJibengongziObj) FocusedRow_jibengongzi = Convert.ToDecimal(rowJibengongziObj); /當(dāng)數(shù)據(jù)發(fā)生變化時(shí)執(zhí)行 private void gridView1_CellValueChanged(object sender,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論