關於DevExpress GridView事件


 

//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();
                     }
                 }
             }
         }
驗證編輯器事件(多列)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM