DevExpress XtraGrid RepositoryItemCheckEdit 復選框多選的解決方法(轉)


1. RepositoryItemCheckEdit默認有三種狀態,選中狀態、未選中狀態和半選中狀態(半選中狀態通常用在TreeList中如果父節點下 的子節點有選中的有未選中的,則父節點狀態為半選中狀態)。如果RepositoryItemCheckEdit所在的列未綁定數據源,那么該列默認只可 以單選;如果綁定了數據源,那么可以同時多選。

2. 問題描述:

 上述描述的ColumEdit關聯FieldName數據源,但是在設計功能中並不僅僅這樣就可以同時多選,還是選中后,在Grid其他的位置再單擊鼠標,選中狀態還是變為非選中。

在"是否需要協助"該類是一個復選框,那怎樣才能實現多選的功能,選中之后不會點擊其他地方又自動消失選中狀態呢?
3.解決方法

這時需要我們為這個字段關聯一個事件,事件代碼如下:

復制代碼
private void repositoryItemCheckEdit1_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e) { string val = ""; if (e.Value != null) { val = e.Value.ToString(); } else { val = "False";//默認為不選  } switch (val) { case "True": case "Yes": case "1": e.CheckState = CheckState.Checked; break; case "False": case "No": case "0": e.CheckState = CheckState.Unchecked; break; default: e.CheckState = CheckState.Checked; break; } e.Handled = true; } 
復制代碼

接下來為這個復選框字段進行關聯事件

 this.repositoryItemCheckEdit1.QueryCheckStateByValue += new DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventHandler(this.repositoryItemCheckEdit1_QueryCheckStateByValue);

接下來運行程序RepositoryItemCheckEdit這個字段就可以實現多選的功能啦!


免責聲明!

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



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