簡體   English   中英

FocusedRowHandle 在 DevExpress GridView C# 中未正確設置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM