从存储过程调用中获取数据表后,我将空行添加到数据表中,以便用户可以在其中输入更多数据。问题在于,将数据表分配给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;
}
答案 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 );