zoukankan      html  css  js  c++  java
  • DevExpress学习之DevExpress.XtraGrid.Views.Grid.GridView简单验证与下拉框编辑

        因为用DevExpress控件很不熟练,故下面实现一个自定义验证方法。思路为:在输入编号时,判断此列中是否已经有此编号,如果有则提示。

    如果没有,则完成编辑,并在下拉框中去除掉此条目。

    定义验证事件

    _view.dataGridView.ValidateRow += new DevExpress.XtraGrid.Views.Base.ValidateRowEventHandler(dataGridView_ValidateRow);

    事件中的验证代码:

    //验证
            void dataGridView_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
            {
               string str = _view.dataGridView.GetRowCellValue(e.RowHandle, "PnId").ToString();
               int count = _view.dataGridView.RowCount;
               for (int i = 0; i < count-1; i++)
               {
                   if (i!=e.RowHandle&&str.Equals(_view.dataGridView.GetRowCellValue(i, "PnId").ToString()))
                   {
                       e.ErrorText = "编号已存在\n"; 
                       e.Valid = false;
                       return;
                   }
               }
               //去除已填写的编号
               if (mesPnIdlst.Contains(str))
               {
                   mesPnIdlst.Remove(str);
                   DDataGrid.InitGridListBox(_view.dataGridView.Columns["PnId"], mesPnIdlst);
               }
            }
    

    向编号列中添加下拉框及其数据: 

     List<string> mesPnIdlst = new List<string>();
            private void AddPnID()
            {
                mesPnIdlst.Clear();
                foreach (string pnid in SensorGroup.sensorHas.Keys)
                {
                    if (!SensorGroup.SensorMapHas.ContainsKey(pnid) && !mesPnIdlst.Contains(pnid))
                    {
                        mesPnIdlst.Add(pnid);
                    }
                }
                DDataGrid.InitGridListBox(_view.dataGridView.Columns["PnId"], mesPnIdlst);
            }

    绑定下拉框数据:

     /// <summary>
            /// 加入列表值
            /// </summary>
            /// <param name="colum">Grid列</param>
            /// <param name="dataSource">值列表</param>
            public static void InitGridListBox(DevExpress.XtraGrid.Columns.GridColumn colum, IList dataSource)
            {
                 DevExpress.XtraEditors.Repository.RepositoryItemComboBox rpCmb
                        = new DevExpress.XtraEditors.Repository.RepositoryItemComboBox();
                foreach (var item in dataSource)
             {
                    rpCmb.Items.Add(item);
             }
               
                colum.ColumnEdit = rpCmb;
            }

  • 相关阅读:
    Android KeyCode列表
    贪吃蛇游戏
    二叉树的深度
    二叉树的层次遍历
    二叉树的后序遍历
    二叉树的中序遍历
    《算法》第四版随笔
    踏上计算机网络学习之路
    二叉树的前序遍历
    登上刷题之路
  • 原文地址:https://www.cnblogs.com/wylaok/p/2822978.html
Copyright © 2011-2022 走看看