zoukankan      html  css  js  c++  java
  • DevExpress Grid控件经典常用功能代码收集

    随着DevExpress 控件包越来越多的被中国用户使用,由于是英文版本,看英文版使用说明非常困难,慧都控件网在DevExpress 控件包使用方面有多年的研究,慧都控件网会不断的把DevExpress 使用经验分享给大家。»更多DevExpress开发资源与帮助文档 下面是我们平时收集最常用的DevExpress Winform 4个代码片段,比较常用,希望对广大DEV用户有帮助。

    一 、GridControl的删除操作

    private void rILinkEditInfoDel_Click(object sender, EventArgs e)
    {
         if (XtraMessageBox.Show("请确定是否删除当前记录?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
         {
             DataRow row = gvInfos.GetDataRow(gvInfos.FocusedRowHandle);
              delByCode(row["Code"].ToString());
             XtraMessageBox.Show("操作成功!");
         }
    }

    二、绑定非数据表中列

    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 = View.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.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["MaxValue"]);
                 if (MinValue != DBNull.Value & MinValue != null & 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.GetRowCellValue(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"></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.ByteImageConverter.ToByteArray(img, ImageFormat.Gif);
    }
    
    /// <summary>
    /// 动态根据条件设置行样式
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void gridView6_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
    {
         GridView 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.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["MaxValue"]);
                 if (MinValue != DBNull.Value & MinValue != null & MaxVlaue.ToString() != "" & MaxVlaue != DBNull.Value && MaxVlaue != null & MaxVlaue.ToString() != "")
                 {
                     decimal gridColumn2 = Convert.ToDecimal(MinValue);
                     decimal gridColumn1 = Convert.ToDecimal(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 e)
    {
         GridView view = sender as GridView;
         DataView dv = view.DataSource as DataView;
         if (e.IsGetData)
         {
             string strVal = dv[e.ListSourceRowIndex]["Color"].ToString();
             if (strVal != "")
             {
                 //e.Value = DevExpress.Utils.StyleLayout.ColorFromString(strVal);
                 e.Value = Common.HexToColor(strVal);
             }
         }
         else
         {
             //Color colorVal = DevExpress.Utils.StyleLayout.ColorFromString(e.Value.ToString());
             Color colorVal = (Color)e.Value;
             dv[e.ListSourceRowIndex]["Color"] = Common.RGB_HEX(colorVal.ToArgb());
         }
    }

    四、关于 GridControl 验证示例

    /**//// <summary>
    /// 初始化GridView,绑定数据
    /// </summary>
    /// <param name="parentId"></param>
    private void GridViewBindData(string parentId)
    {
    this.gridView1.Columns.Clear();
    this.FDs= areaSetupActionHelper.getDsRegionByParentId(parentId);
    this.gridCArea.DataSource =this.FDs.Tables[0].DefaultView;
    
        this.gridView1.Columns["id"].VisibleIndex = -1;
        this.gridView1.Columns["childCounts"].VisibleIndex = -1;
    
        this.gridView1.Columns["reg_id"].Caption = "区划编号";
        this.gridView1.Columns["reg_name"].Caption = "区划名称";
        this.gridView1.Columns["parent_id"].Caption = "父区划编号";
        this.gridView1.Columns["reg_desc"].Caption = "区划描述";
        this.gridView1.Columns["parent_id"].ImageIndex =1;
        this.gridView1.Columns["reg_desc"].ImageIndex = 0;
    
        RepositoryItemTextEdit textEditReg_Id = new RepositoryItemTextEdit();
        textEditReg_Id.Mask.EditMask =parentId+"\d{2,3}";
        textEditReg_Id.Mask.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?"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, "区划编号"));
        lookUEParent_Id.Columns.Add(new LookUpColumnInfo("reg_name", 40, "区划名称"));
        lookUEParent_Id.DataSource = ds.Tables[0].DefaultView;
        lookUEParent_Id.ValueMember = "reg_id";
        lookUEParent_Id.DisplayMember = "reg_id";
        this.gridView1.Columns["parent_id"].ColumnEdit = lookUEParent_Id;
    }
    /**//// <summary>
    /// gridView单元格验证的相关处理程序
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
    {
    if (e.Valid == false&this.gridView1.FocusedColumn.FieldName == "reg_id")
    {
          e.ErrorText = "区划编号不合法!
    应为父区划编号加2~3位数据组成!";   
        }
        if (this.gridView1.FocusedColumn.FieldName == "reg_name")
        {     
         Regex reg=new Regex(@"[u4e00-u9fa5]{1,20}");
         Match m=reg.Match(e.Value.ToString().Trim());
         if (m.Length != e.Value.ToString().Trim().Length)
         {
          e.Valid = false;
          e.ErrorText = "区划名称应为汉字
    长度为1至20";
         }
        }
    }
    
    private void gridView1_InvalidValueException(object sender, InvalidValueExceptionEventArgs e)
    {
        if (MyDialog.Alert(" 您所填写的内容不符合规则
     要放弃您刚才对此项所做的更改吗?", "您所编辑的内容不符合规则", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
        {
         e.ExceptionMode = ExceptionMode.Ignore;
        }
    }
    
    /**//// <summary>
    /// gridView行验证的相关处理程序
    /// </summary>
    private void gridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
    {
    string regid = this.gridView1.GetRowCellValue(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"], "请填写区划编号!", DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default);
          // e.ErrorText = "区划名称不能为空!";
        }
        if (regName.Length < 1)
        {
         e.Valid = false;
         this.gridView1.SetColumnError(this.gridView1.Columns["reg_name"], "区划名称不能为空!", DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default);
        }
    }
    
    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.GetRowCellValue(e.RowHandle, this.gridView1.Columns["reg_name"]).ToString().Trim() == "")
         {
          if (MyDialog.Alert("  您所填写的内容不符合规则
     要放弃您刚才对此项所做的更改吗?", "您所编辑的内容不符合规则", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
          {
           e.ExceptionMode = ExceptionMode.Ignore;
          }
          else
          {
           e.ExceptionMode = ExceptionMode.NoAction;
          }
         }
        }
        else
        {
         e.ExceptionMode = ExceptionMode.Ignore;
        }
    }
  • 相关阅读:
    UIControl IOS控件编程 及UITextField的讲解
    ViewPager实现页面切换
    HDU 3788 和九度OJ 1006测试数据是不一样的
    的基本原理的面向对象的--------单个程序员必须查看
    hdu1796 How many integers can you find
    Android数据加载和Json解析——蓝本
    设计管理员表;webservice用于网络安全的高端内提供服务的
    how tomcat works 札记(两)----------一个简单的servlet集装箱
    新秀学习Hibernate——一个简单的例子
    在cocos2d-x在CCTableView使用控制
  • 原文地址:https://www.cnblogs.com/lwaixd/p/3883802.html
Copyright © 2011-2022 走看看