You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

选中行时DevExpress XtraGrid筛选行数统计异常

解决DevExpress XtraGrid筛选后RowCount选中行前后不一致的问题

核心原因

XtraGrid的RowCount属性会包含绑定数据源的行 + 新添加的空行(当GridView.OptionsView.NewItemRowPosition未设为None时)。筛选状态下,空行可能因不满足筛选条件被隐藏,选中现有行后,空行的筛选判断触发变化导致其显示,从而让RowCount从1变为2。

解决方案

  • 使用DataRowCount替代RowCount:
    DataRowCount仅统计绑定数据源中的有效行,不包含新添加的空行,能准确获取筛选后的实际数据行数:

    Dim nCount = MyXGrid.DataRowCount
    
  • 控制新行显示:
    如果不需要新增行功能,直接禁用新行:

    MyXGrid.OptionsView.NewItemRowPosition = DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.None
    

    若需要保留新增行,确保新行的默认值不满足当前筛选条件,或者临时禁用新增行,待统计完成后再恢复:

    MyXGrid.OptionsBehavior.AllowAddRows = False
    ' 执行行数统计逻辑
    MyXGrid.OptionsBehavior.AllowAddRows = True
    
  • 获取可见行数用VisibleRowCount:
    如果需要的是当前界面上可见的行数(包含新行如果显示的话),使用:

    Dim nVisibleCount = MyXGrid.VisibleRowCount
    

关于选中行计数

GetSelectedRowCount仅返回当前选中的行数,和总显示行数无关,若要获取选中行对应的数据源行,可结合GetSelectedRows方法:

Dim selectedRows = MyXGrid.GetSelectedRows()
Dim nSelectedCount = selectedRows.Length

内容的提问来源于stack exchange,提问作者Khu RJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:07:03