DevExpress Grid Control:遍历网格行更新指定部门价格
遍历DevExpress Grid Control并更新指定行价格的解决方案
方式一:操作绑定数据源(推荐)
DevExpress GridControl通常绑定DataTable、自定义实体集合等数据源,直接操作数据源是最高效的方式,之后刷新网格即可同步显示。
若数据源为DataTable:
// 获取GridControl绑定的DataTable DataTable dataTable = gridControl1.DataSource as DataTable; if (dataTable != null) { foreach (DataRow row in dataTable.Rows) { // 匹配部门编号78102(注意数据类型:若Department是数字则用(int)row["Department"] == 78102) if (row["Department"].ToString() == "78102") { // 更新价格,示例设置为150.00 row["Price"] = 150.00; } } // 刷新网格同步数据 gridControl1.RefreshDataSource(); }
若数据源为自定义实体集合(如List- ):
假设实体类定义如下:
public class Item { public int ItemNo { get; set; } public int Department { get; set; } public string Description { get; set; } public int StoreNumber { get; set; } public decimal Price { get; set; } }
操作代码:
List<Item> itemList = gridControl1.DataSource as List<Item>; if (itemList != null) { foreach (Item item in itemList) { if (item.Department == 78102) { item.Price = 150.00m; // 更新价格 } } gridControl1.RefreshDataSource(); }
方式二:直接遍历GridView可视化行
如果未绑定数据源或需要直接操作UI行,可遍历GridView的行集合:
// 遍历GridView的所有行 for (int i = 0; i < gridView1.RowCount; i++) { // 获取当前行的Department字段值 object deptValue = gridView1.GetRowCellValue(i, "Department"); if (deptValue != null && deptValue.ToString() == "78102") { // 设置Price字段值 gridView1.SetRowCellValue(i, "Price", 150.00); } }
注意事项
- 确保代码中使用的列名(如
"Department"、"Price")与GridView列的FieldName属性完全一致; - 匹配部门编号时要注意数据类型:若Department是整数类型,需用数值比较而非字符串比较;
- 若使用
BindingSource作为中间层,需先获取bindingSource1.DataSource再进行操作。
内容的提问来源于stack exchange,提问作者Khu RJ
相关产品推荐
相关产品推荐

