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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人