gpt4 book ai didi

.net - RowLeave 上的 Datagridview 没有为 boolean 值分配正确的值

转载 作者:行者123 更新时间:2023-12-04 07:05:26 26 4
gpt4 key购买 nike

我有一个 DataViewGrid,我从查询中的 DataTable 填充到数据库。在 try catch Row_Leave 事件以正确更新它时,我似乎无法捕获 boolean 列中的最新值。

如果我只更新一个文本字段,当我访问基础数据源时,我会得到我输入的最新值,如果我访问 boolean 值,我会得到以前的值。

我正在访问这样的行:

if (allCorrect)
{
if (((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).IsNew)
{
this.InsertEntry((DataRow)((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).Row);
}
else
{
this.UpdateEntry((DataRow)((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).Row);
}
}

(访问底层行的方式非常复杂,但就像访问 DGV 的 DataSource 一样,所以这不是问题。)

有任何想法吗?

编辑 :我已将问题缩小到正确的事件调用。似乎 RowLeave 在 EndCellEdit 甚至 CellValueChanged 之前被调用。因此,该行永远不会获得状态更新(要在数据库中更新)并且不会这样做。我可以更改这些事件的顺序(为了正常工作)吗?我发现这是一个 known issue这应该在 Orcas 改变,但他们从未改变。

最佳答案

好的,有一个解决方法。

在检查它是否需要更新后:

        if(!(dgView.IsCurrentCellDirty))
{
return;
}

我做了一个 CommitEdit 来应用单元格的更改(由于上述错误,该事件尚未发生)
        dgView.CommitEdit(0);

当更新/插入发生时,该行将获得最新值。

关于.net - RowLeave 上的 Datagridview 没有为 boolean 值分配正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com