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





    ‍DevExpress
    经典常用功能代码收集
    May 18, 2010 | tags DevExpress WinformGridControl DEV常用功能代码
    | views
    Comments 0







    随着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"];

    }
    }
    }
    }
    }

    ///


    /// 由资源文件获取图片
    ///

    ///
    ///
    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);
    }

    ///
    /// 动态根据条件设置行样式
    ///

    ///
    ///

    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 验证示例

    /**////
    ///
    初始化GridView,绑定数据
    ///

    ///
    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;
    }
    /**////
    ///
    gridView单元格验证的相关处理程序
    ///

    ///
    ///
    private void gridView1_ValidatingEditor(object
    sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs
    e)
    {
    if (e.Valid == false&this.gridView1.FocusedColumn.FieldName ==
    "reg_id")
    {
    e.ErrorText = "区划编号不合法!\n应为父区划编号加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 = "区划名称应为汉字\n长度为1至20";
    }
    }
    }

    private void
    gridView1_InvalidValueException(object sender, InvalidValueExceptionEventArgs
    e)
    {
    if (MyDialog.Alert(" 您所填写的内容不符合规则\n 要放弃您刚才对此项所做的更改吗?",
    "您所编辑的内容不符合规则", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) ==
    DialogResult.Yes)
    {
    e.ExceptionMode =
    ExceptionMode.Ignore;
    }
    }

    /**////
    ///
    gridView行验证的相关处理程序
    ///

    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("  您所填写的内容不符合规则\n 要放弃您刚才对此项所做的更改吗?", "您所编辑的内容不符合规则",
    MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)

    {
    e.ExceptionMode = ExceptionMode.Ignore;
    }

    else
    {
    e.ExceptionMode = ExceptionMode.NoAction;

    }
    }
    }
    else
    {
    e.ExceptionMode =
    ExceptionMode.Ignore;
    }
    }

  • 相关阅读:
    从零开始,SpreadJS新人学习笔记【第4周】
    如何使用JavaScript实现前端导入和导出excel文件
    【案例分享】在 React 框架中使用 SpreadJS 纯前端表格控件
    中国高考志愿填报与职业趋势分析
    Vue 2019开发者图谱
    从零开始,SpreadJS新人学习笔记【第3周】
    从零开始,SpreadJS 新人学习笔记(第二周)
    从零开始,SpreadJS 新人学习笔记
    Spread.NET 表格控件 V12.1 正式发布
    汇编语言-端口
  • 原文地址:https://www.cnblogs.com/zhangtao/p/2347572.html
Copyright © 2011-2022 走看看