我有一个使用Infragistics UltraWebGrid的遗留应用程序,并且遇到了一个特别令人愤怒的问题。
在运行时,列中会添加复选框。当用户点击保存时,它会将检查的所有用户添加到数据库。在允许保存之前,我必须添加代码以验证已检查用户是否实际处于活动状态。我设置了我的测试数据,其中第一个检查为非活动状态,第二个检查是正常的。但是,当我调试我的代码时,它有时会看到cell.Selected为true,但通常不会(2/10次)。它总是看到第二个单元格。选择是真的。
这让我相信UltraWebGrid会做某种懒惰的eval并且不会立即从UI线程更新表格......这里发生了什么?
修改
刚才意识到我一直在使用cell.Selected属性,这不等于Checked ...不确定如何获得Checked值但是...
foreach (UltraGridRow row in uwgRoster.Rows)
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.Type == ColumnType.CheckBox && cell.Key.ToLower().Contains("service") && cell.Selected)
{
var casefileId = row.Cells.FromKey("CasefileID").Value.ToString();
var casefile = new Casefile(Convert.ToInt32(casefileId), false);
if (!casefile.ActiveFlag)
{
inactives.AppendLine("- " + row.Cells.FromKey("Name").ToString());
}
}
}
}