簡體   English   中英

在GridView中顯示選定的行

[英]Show selected row in gridview

我有一個帶有RadGridView的數據輸入表單。 數據在該行的主字段中按字母順序索引。 當我添加新行並按update ,它當然會轉到行順序中的位置。 但是我不僅希望選擇新行,而且還希望顯示網格窗口。 當我在C#中使用默認的GridView ,此代碼運行良好:

private void btnUpdate_Click(object sender, EventArgs e)
{
    int id = 0;            
    id = Convert.ToInt32(lblId.Text);               
    foreach (var dgr in gridViewCompanies.Rows)
    {
        if (dgr.Cells[0].Value.Equals(tbl.ID))
        {
            dgr.IsSelected = true;
            dgr.Cells[0].IsSelected = true;
            gridViewCompanies.FirstRowIndex = dgr.Index;
            break;
        }
    }
 }

(我只是復制了這段代碼的相關部分)

但是現在我正在使用RadGridView (出於某些其他原因),最后一行gridViewCompanies.FirstRowIndex = dgr.Index; 似乎沒有用。 這意味着我的新行選中,但視圖不會顯示它。 我必須向下滾動才能找到新添加的行。

    private void btnUpdate_Click(object sender, EventArgs e)
    {
        int id = 0;            
        id = Convert.ToInt32(lblId.Text);               
        foreach (var dgr in gridViewCompanies.Rows)
        {
            if (dgr.Cells[0].Value.Equals(tbl.ID))
            {
                dgr.IsSelected = true;
                dgr.Cells[0].IsSelected = true;

                this.radGridView.TableElement.VScrollBar.Value = dgr.Index;
                break;
            }
        }
     }

試試這個代碼

這是最終有效的方法:

private void btnUpdate_Click(object sender, EventArgs e)
    {
        int id = 0;            
        id = Convert.ToInt32(lblId.Text);               
        foreach (var dgr in gridViewCompanies.Rows)
        {
            if (dgr.Cells[0].Value.Equals(tbl.ID))
            {
                dgr.IsSelected = true;
                dgr.Cells[0].IsSelected = true;GridTableElement tableElement = this.gridViewCompanies.CurrentView as GridTableElement;
                        tableElement.ScrollToRow(dgr.Index);

                break;
            }
        }
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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