【问题标题】:Show selected row in gridview在gridview中显示选定的行
【发布时间】:2016-09-14 10:10:21
【问题描述】:

我有一个带有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; 似乎不起作用。这意味着我的新行 被选中,但视图不会显示它。我必须向下滚动才能找到新添加的行。

【问题讨论】:

    标签: c# radgridview


    【解决方案1】:
        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;
                }
            }
         }
    

    试试这个代码

    【讨论】:

    • 所以你选择了行而不是高线?
    • 不,它被突出显示和一切。问题是,例如,如果我添加了一个以“F”开头的新行,则在更新后它在所有其他行中都以 F 开头(在我看来可能较低)。但我希望网格滚动到所选行所在的位置并将其显示给我。此代码与默认网格完美配合。它不适用于telerik radgrid
    • 你在尝试'ScrollIntoView'吗?
    • 是的,您使用 Telerik Controls for winforms?
    • 'this.radGridView.TableElement.VScrollBar.Value = dgr.Index;'这必须有效。
    【解决方案2】:

    这终于奏效了:

    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;
                }
            }
         }
    

    【讨论】:

      猜你喜欢
      • 2011-05-07
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 2022-01-01
      相关资源
      最近更新 更多