![](/img/trans.png)
[英]DevExpress GridView throwing exception when asigning to FocusedRowHandle
[英]FocusedRowHandle not setting correctly in a DevExpress GridView C#
我正在嘗試更新我的 GridView 以自動選擇在用戶填寫字段並按添加后添加的新行。 但是,嘗試設置 FocusedRowHandle 屬性時我沒有運氣。 即使在我嘗試為 FocusedRowHandle 分配值后,FocusedRowHandle 值仍保持在 -2147483648,如下面的代碼所示:
private void gvExample_RowUpdated(object sender, RowObjectEventArgs e)
{
try
{
ExampleMethodToUpdateTableAdapter();
GridView view = sender as GridView;
Object obj;
if (e.RowHandle != GridControl.NewItemRowHandle)
obj = view.GetRow(view.FocusedRowHandle);
else
{
dsExample.dtExample.DefaultView.Sort = "ID desc";
DataTable dtSorted = dsExample.dtExample.DefaultView.ToTable(true);
int lastID = Convert.ToInt32(dtSorted.Rows[0]["ID"]);
gvExample.FocusedRowHandle = lastID;
}
}
catch (Exception ex)
{
}
}
進入 else 語句時,目的是從 DataTable 中獲取最新的 ID,現在它已更新(因為 e.RowHandle 的值是 -2147483648,因為它是一個新行)並將 Focused Row 設置為此 ID。
我試圖在網上查看這個,但似乎找不到解決方案,所以我想我可以在這里發帖。 抱歉,如果我錯過了任何信息。
如果我理解正確,您想關注新行(這是最后一行):
gridView.FocusedRowHandle = gridView.RowCount - 1;
如果沒有,您必須使用 for i 0-> gridView.RowCount - 1 搜索 gridvw 內的 id,然后當您找到 Id 以使用 i 值聚焦行時。
for (int i = 0; i <= gridView.RowCount - 1; i++)
{
if (gridView.GetRowCellValue(i, gridView.columns(column_number)))
{
gridView.FocusedRowHandle = i;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.