UltraWinGrid使用数据表滚动到底部

时间:2018-07-26 14:02:04

标签: c# datatable infragistics ultrawingrid

从存储过程调用中获取数据表后,我将空行添加到数据表中,以便用户可以在其中输入更多数据。问题在于,将数据表分配给ultragrid数据源属性后,滚动条一直移动到最后。用户将无法查看存储过程调用在数据表中填充的现有行。

是否可以将活动行作为第一行或将滚动条设置在顶部?

代码如下:

dtRBMOverride = vprDataTable.LoadSP("rbmSelOverride", sqlParams.ToArray());
for (int i = 0; i < 99; i++)
{
    var row = dtRBMOverride.NewRow();
    dtRBMOverride.Rows.Add(row);
}
ultraGrid1.DataSource = dtRBMOverride;

这是我到目前为止一直没有成功的尝试:

ultraGrid1.Rows[0].Selected = true;
ultraGrid1.DisplayLayout.RowScrollRegions[0].ScrollPosition = 0;
ultraGrid1.DisplayLayout.RowScrollRegions[0].Scroll(RowScrollAction.Top);
ultraGrid1.ActiveRowScrollRegion.Scroll(RowScrollAction.Top);
this.ultraGrid1.DisplayLayout.RowScrollRegions[0].FirstRow = this.ultraGrid1.ActiveRow.ParentRow;

private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
    e.Layout.Override.AllowMultiCellOperations = Infragistics.Win.UltraWinGrid.AllowMultiCellOperation.All;
    e.Layout.ScrollBounds = ScrollBounds.ScrollToFill;
}

1 个答案:

答案 0 :(得分:0)

如果需要将特定的行滚动到WinGrid的顶部,可以将其RowScrollRegion的FirstRow属性设置为所需的行,如下所示:

this.ultraGrid1.DisplayLayout.RowScrollRegions[0].FirstRow = this.ultraGrid1.DisplayLayout.Rows[YouRowIndex];

在他们的帮助中查看本文以获取更多信息,Scrolling a Row into View

从您的问题开始,它看起来像您需要滚动到网格的活动行。在这种情况下,您可能需要先将活动行设置为需要滚动到的行。要设置活动行,您可以使用以下代码:

this.ultraGrid1.Rows[YouRowIndex].Activate();

还有一件事。如果您的网格处于编辑模式,例如用户更改特定单元格的值时,应首先退出编辑模式。为此,请像这样调用网格的PerformAction方法:

this.ultraGrid1.PerformAction( UltraGridAction.ExitEditMode );