繁体   English   中英

Devexpress GridControl复选框

[英]Devexpress gridcontrol checkbox

您好,我在gridcontrol(winforms dexexpress)中的复选框有问题。 我有三个列“检查”,“名称”,“描述”。 用户可以对列进行排序,例如“名称”,然后选中某行上的复选框(“ Check”)。 单击行中的复选框后,我要检查项目。 但是我得到错误的行索引(它是默认排序的索引)。 有什么想法可以在应用排序后获得正确的索引吗? 问题是在其他列排序之后选择了不同的复选框。 我读到有关此http://documentation.devexpress.com/#WindowsForms/CustomDocument2531的信息,但这对我没有帮助,真的不知道该怎么做

    private void gridViewT_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
    if (e.Column.Name == "CheckColumn" && e.RowHandle > -1)
    {
        if (e.Value != null && (bool)e.Value) {
            DataRow dr = ((DataTable)gridControlT.DataSource).Rows[e.RowHandle];
            DoSomeThing(dr);
        }
    }
}

因此,e.RowHandle(表示表的索引)是在另一个旧列进行排序之后。 带有复选框的列的CheckColumn未被其他列排序。

这是正确的代码:

//DataRow dr = ((DataTable)gridControlT.DataSource).Rows[e.RowHandle];
DataRow dr = ((GridView)sender).GetDataRow(e.RowHandle);

行句柄获取包含已处理单元格的行的句柄(而非索引) 行句柄定义视图中行的显示顺序。 该顺序考虑了应用于View的所有排序和过滤设置

相关帮助文章: 识别行和卡片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM