超网格滚动

时间:2011-02-25 11:00:11

标签: infragistics

当我在超胜网格中插入一个新行时,滚动位置正在改变如何保持我的滚动位置C#application framework 2.0

3 个答案:

答案 0 :(得分:0)

不完全确定你的意思?你可以详细说明/提供更多细节吗?

  • 首先选择任何行(以编程方式或通过单击它)。你添加的任何行都不应该定位位置

  • 还有一种方法可以将特定的行放入视图中(我认为它被称为ScrollIntoView()或BringIntoView(),请查看Infragistics API)。

答案 1 :(得分:0)

据我所知,您希望在刷新或插入新行后选择当前行。您必须将当前活动行索引保留在内存中,然后手动滚动回它。这是一个代码示例

    private void btnTestActiveRow_Click(object sender, EventArgs e)
    {
        var activeIndex = ultraGrid1.ActiveRow.Index; // get the activerow index

        scrollPos = ultraGrid1.ActiveRowScrollRegion.ScrollPosition; 


        ultraGrid1.DataSource = null;
        ultraGrid1.DataSource = dal.GetData(); //refreshing the grid



        ultraGrid1.ActiveRowScrollRegion.ScrollPosition = scrollPos;
        ultraGrid1.Rows[activeIndex].Activate(); 
        ultraGrid1.Rows[activeIndex].Selected = true;

    }

答案 2 :(得分:0)

if(grd.ActiveRow != null) 
{
   grd.Refresh();
   grd.ActiveRowScrollRegion.ScrollRowIntoView(grd.ActiveRow);
   grd.ActiveColScrollRegion.ScrollRowIntoView(grd.ActiveRow, grd.ActiveRowScrollRegion);
}

滚动到当前的ActiveRow。