“开发快速网格控制”复选框
本文关键字:控制 复选框 网格 开发 | 更新日期: 2023-09-27 18:35:11
您好,我在网格控制(winforms dexexpress)中的复选框有问题。我有三个列"检查","姓名","描述"。用户可以对列应用排序,例如"名称",然后他在某行上选中复选框("检查")。我想在单击行上的复选框后选中项目。但是我得到了错误的行索引(它是具有默认排序的索引)。有什么想法可以在应用排序后获得正确的索引吗?问题是在其他列排序后选择了不同的复选框。我读过这个 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(意思是索引到表)是在按另一个旧列排序之后。带有复选框的列的检查列不按另一个列排序。
这是正确的代码:
//DataRow dr = ((DataTable)gridControlT.DataSource).Rows[e.RowHandle];
DataRow dr = ((GridView)sender).GetDataRow(e.RowHandle);
行句柄获取包含已处理单元格的行的句柄(而不是索引)。行控点定义行在视图中的显示顺序。此顺序考虑了应用于视图的任何排序和筛选设置。
相关帮助文章 : 识别行和卡片