Devexpress GridView 常用操作總結


 

一: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;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM