//RowCellStyle 行單元格樣式事件 //用於設置行單元格樣式 //這里舉例 如果狀態為0則白背景色改為藍綠色 if(e.RowHanle>=0)//當前視圖的所有行 { DataRow dr =this.view.GetRow(e.RowHanle);//獲取所有行的數據 if(dr==null) return; if(dr["AGE"]==0) { e.Appearance.Backcolor=Color.YellowGreen; } }

//ValidatingEditor 驗證編輯器事件 //驗證view中某一列的值不能相同 //例:用戶編號不能相同 USER_CODE private void viewUser_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e) { //如果當前焦點列為用戶編碼列USER_CODE if (this.viewUser.FocusedColumn == this.viewUser.Columns[DE.GmUser.USER_CODE]) { //e.Value當前列的值 if (e.Value == null || string.IsNullOrEmpty(e.Value.ToString())) return; string usrCode = e.Value.ToString(); int currowHandler = this.viewUser.FocusedRowHandle;//當前焦點行的行號 int rowHandler = this.viewUser.LocateByValue(0, this.viewUser.FocusedColumn, usrCode);//從第一行開始查找該列相同的userCode,返回行號。view.(從哪里開始查找,列名,要查找的值) if (rowHandler > -1) { if (rowHandler != currowHandler) { if (this.viewUser.FocusedValue != null) { //提示信息:用戶編號不能重復 } e.Valid = false;//提示單元格的值無效 單元格會出現一個紅色的× this.viewUser.HideEditor();//隱藏編輯器,放棄次單元格所做的更改 this.viewUser.ShowEditor();//顯示編輯器 } } else { rowHandler = this.viewUser.LocateByValue(this.viewUser.RowCount - 1, this.viewUser.FocusedColumn, usrCode);//反過來查找 if (rowHandler > -1 && rowHandler != currowHandler) { if (this.viewUser.FocusedValue != null) { //提示信息:用戶編號不能重復 } e.Valid = false; this.viewUser.HideEditor(); this.viewUser.ShowEditor(); } } } }

//ValidatingEditor 驗證編輯器事件 //驗證view中某多列的值不能相同 private void viewOrgTarget_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e) { if (this.viewOrgTarget.FocusedColumn == this.viewOrgTarget.Columns[DE.BmOrgTarget.OPER_DATE]) { int intHandle = this.viewOrgTarget.FocusedRowHandle; this.viewOrgTarget.FocusedRowHandle = -1; this.viewOrgTarget.FocusedRowHandle = intHandle; if (e.Value == null || string.IsNullOrEmpty(e.Value.ToString())) return; DataRow drCurrent = this.viewOrgTarget.GetFocusedDataRow(); string strBrandId = TWays.Utils.ToString(drCurrent[DE.BmOrgTarget.BRAND_ID]); string strBranchId = TWays.Utils.ToString(drCurrent[DE.BmOrgTarget.BRANCH_ID]); string strCateId = TWays.Utils.ToString(drCurrent[DE.BmOrgTarget.CATE_ID]); string strOrgType = TWays.Utils.ToString(drCurrent[DE.BmOrgTarget.ORG_TYPE]); string strOperDate = e.Value.ToString(); if (string.IsNullOrEmpty(strBrandId)) { //提示信息 e.Valid = false; this.viewOrgTarget.HideEditor(); this.viewOrgTarget.ShowEditor(); } else if (string.IsNullOrEmpty(strBranchId)) { //提示信息 e.Valid = false; this.viewOrgTarget.HideEditor(); this.viewOrgTarget.ShowEditor(); } else if (string.IsNullOrEmpty(strCateId)) { //提示信息 e.Valid = false; this.viewOrgTarget.HideEditor(); this.viewOrgTarget.ShowEditor(); } else if (string.IsNullOrEmpty(strOrgType)) { //提示信息 e.Valid = false; this.viewOrgTarget.HideEditor(); this.viewOrgTarget.ShowEditor(); } else if (!string.IsNullOrEmpty(strOperDate)) { int iRowCount = 0; for (int i = 0; i < this.viewOrgTarget.RowCount; i++) { DataRow dr = this.viewOrgTarget.GetDataRow(i); if (TWays.Utils.ToString(dr[DE.BmOrgTarget.BRAND_ID]) == strBrandId && TWays.Utils.ToString(dr[DE.BmOrgTarget.BRANCH_ID]) == strBranchId && TWays.Utils.ToString(dr[DE.BmOrgTarget.CATE_ID]) == strCateId && TWays.Utils.ToString(dr[DE.BmOrgTarget.ORG_TYPE]) == strOrgType && TWays.Utils.ToString(dr[DE.BmOrgTarget.OPER_DATE]) == strOperDate) { iRowCount++; } } if (iRowCount > 0) { //提示信息 viewOrgTarget.SetFocusedRowCellValue(colShowOperDate, null); e.Valid = false; this.viewOrgTarget.HideEditor(); this.viewOrgTarget.ShowEditor(); } } } }