zoukankan      html  css  js  c++  java
  • 将checklistbox控件与DataView绑定

    介绍 经过一整天的努力,我终于成功地让DevExpress XtraGrid使用一个未绑定的复选框colum,但代价是UI的一致性。所以我不得不选择另一个选择…CheckedListBoxControl。 使用。net标准CheckedListBoxControl,我找不到属性DataSource, DisplayMember和ValueMember。原因可能是一个更老的。net框架。因此,为了避免麻烦,我决定使用DevExpress checkedlistbox控件。 下面是我对checkedlistbox控件使用的通用方法的代码。我想在这里指出,我使用了一个DataView作为我的CheckedListBoxControl的数据源,而不是简单的项。所以。ite ms属性在这里没有任何用处,但是。checkeditems, . checkedindices和. itemcount属性被使用。. checkeditems返回所有复选框项目作为一个对象,而. checkedindices返回所有. checkstate = "Checked"项目的索引。我使用这些索引作为DataView的rowIndex来从DataView中获取值。所以最好还是使用隐藏。复制Code

    foreach (int index in chkList.CheckedIndices)
     { ... = myDataRow[index].Row["FIELDNAME"].ToString(); ... }

    以获取检查的值。隐藏,收缩,复制Code

    [C#]
    #region CheckBox Generic Methods
    public void SelectAll(DevExpress.XtraEditors.CheckedListBoxControl chkList) { 
        for(int i=0;i< chkList.ItemCount;i++) {
          chkList.SetItemChecked(i, true);
        }             
    }
    public void RemoveAll(DevExpress.XtraEditors.CheckedListBoxControl chkList) { 
        for(int i=0;i< chkList.ItemCount;i++) {
          chkList.SetItemChecked(i, false);  
        }       
    }
    public bool Checked(DataView dvSource, 
          DevExpress.XtraEditors.CheckedListBoxControl chkList, 
          string keyID, string fieldName) {
      bool stat = false;
      try{
        for (int i=0; i< dvSource.Count; i++ ) {
          if (dvSource[i].Row[fieldName].ToString()  == keyID) {
            chkList.SetItemChecked (i, true);
            stat = true;
            break;
          }
        }
      }
      catch(Exception ex){
        Code.ShowMessage(ex.ToString());
     }
     return stat;
    }
    public bool UnChecked(DataView dvSource, 
         DevExpress.XtraEditors.CheckedListBoxControl chkList, 
         string keyID, string fieldName) {
      bool stat = false;
      try{                      
        for (int i=0; i< dvSource.Count; i++ ) {
          if (dvSource[i].Row[fieldName].ToString() == keyID.ToString()) {
            chkList.SetItemChecked (i, false);
            stat = true;
            break;
          }
        }     
      }
      catch(Exception ex){
        Code.ShowMessage(ex.ToString());
      }
      return stat;
    }
    #endregion

    本文转载于:http://www.diyabc.com/frontweb/news368.html

  • 相关阅读:
    mySQL优化方案
    java之自动过滤提交文本中的html代码script代码
    java小技术之生成二维码
    微信扫码支付功能详细教程————Java
    java实现发送邮件服务器,SMTP协议发送邮件
    『重构--改善既有代码的设计』读书笔记----序
    Linux导航神器-----autojump
    绘图时,根据size()和自定义rect编程的区别
    Qt中如何在QCursor移动的时候不触发moveEvent
    Qt远程机开发时光标注意问题
  • 原文地址:https://www.cnblogs.com/Dincat/p/13443875.html
Copyright © 2011-2022 走看看