zoukankan      html  css  js  c++  java
  • Devexpress GridView部分常用操作总结 z

    一:Clone返回新的 DataTable

    Clone返回新的 DataTable,与当前的 DataTable 具有相同的架构;Copy:返回新的 DataTable,它具有与该 DataTable 相同的结构(表架构和约束)和数据 

    DataRow[] _dr = DT.Select("CLSSBH='"+ Filter_Str +"'"); 
    DataTable dt = DT.Clone() ; 
    DataRow dr ; 
    for( int j = 0 ;j < _dr.Length ;j ++ ) 

    dr = dt.NewRow() ; 
    dr = _dr[j] ; 
    dt.ImportRow( dr ) ; 

      
    我一般使用DataTable.Rows.Add(row.ItemArray); 

     二:选中某一行

    GridView.FocusedRowHandle =i;
    GridView.SelectRow(i
    );

    三:遍历GridView

    for (int i = 0; i < gridView1.RowCount; i++)
    {
           for (int j = 0; j < gridView1.Columns.Count; j++)
           {
                 object val = gridView1.GetRowCellValue(i, gridView1.Columns[j]);
           }
    }

    四:单元格双击响应

    需要先将gridview1.OptionsBehavior.Editable设为false,然后响应gridControl1_DoubleClick事件。

            private void gridControl1_DoubleClick(object sender, EventArgs e)
            {
                MouseEventArgs arg = e as MouseEventArgs;
                if (arg == null)
                    return;

                GridHitInfo hitInfo = gridView1.CalcHitInfo(new Point(arg.X, arg.Y));//获取坐标点
                if (hitInfo.RowHandle >= 0)
                {
                    DataRow row = gridView1.GetDataRow(hitInfo.RowHandle);
                    _list.Clear();
                    _list.Add(row[0].ToString());
                    gisResoureMonControl1.SetSelectResource(_list);
                }           
            }

    五:GridView隐藏行

    需要响应CustomRowFilter事件,用来设置过滤条件;

    需要根据原始数据源结合起来,才能方便地隐藏或者显示行;

            /// <summary>
            /// 根据条件查询并在表格中显示结果
            /// </summary>
            /// <param name="strCondition"></param>
            private void QueryTable(string strCondition)
            {
                DataTable table = gridControl1.DataSource as DataTable;
                if (table == null)
                    return;

                _indexlist.Clear();

                for (int i = 0; i < table.Rows.Count; i++)
                {
                    for (int j = 0; j < table.Columns.Count; j++)
                    {
                        if(table.Rows[i][j].ToString().Contains(strCondition))
                        {
                            _indexlist.Add(i);
                            gridView1.RefreshData();
                            break;
                        }
                    }
                }

                if (_indexlist.Count==0)
                    HideGridView();                      
            }

            /// <summary>
            /// gridView的行隐藏或显示的过滤条件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void gridView1_CustomRowFilter(object sender, RowFilterEventArgs e)
            {
                if (_indexlist.Count == 0)
                    return;

                if(_indexlist.Contains(-2))
                    e.Visible = true;   //全显示
                else if (_indexlist.Contains(-3))
                    e.Visible = false;   //全隐藏
                else if(_indexlist.Contains(e.ListSourceRow))
                    e.Visible = true;
                else
                    e.Visible = false;

                e.Handled = true;
            }

  • 相关阅读:
    mysql那些事(1)手机号与座机号码如何存储
    分享一个PHP调用RestFul接口的函数
    php sprintf用法
    HTTP状态码详解
    PHP随机生成中国人姓名的类
    PHP计算两组经纬度坐标之间的距离
    PHP根据经纬度获取在范围坐标的数据
    PHP 利用QQ邮箱发送邮件「PHPMailer」
    PHP中利用PHPMailer配合QQ邮箱实现发邮件
    修改PHP上传文件大小限制
  • 原文地址:https://www.cnblogs.com/zeroone/p/3606261.html
Copyright © 2011-2022 走看看