2011-09-12 2 views
0

새 행을 만든 후 행을 선택하면 이미 문제가 해결되었습니다. 그리고 그것도 아래로 스크롤됩니다.다른 대역에 대한 새로운 행을 생성 한 후에 선택된 극심한 행을 설정 하시겠습니까?

이번에는 문제가 다릅니다. 선택한 행으로 스크롤해야하지만 선택된 행에는 하위 행이 있으며 선택한 행의 마지막 하위 행까지 스크롤해야합니다.

나는 이미 선택한 행을 얻는 방법을 알고 있지만 색인을 얻는 방법은 모른다.

private void SplitUnit(Boolean editSplittedRow) 
     { 
      UC011_WizardStepUnitDataSet.UnitRow unitRow; 

      if (editSplittedRow) 
      { 
       unitRow = (ultraGridOverview.ActiveRow.ParentRow.ListObject as DataRowView).Row as UC011_WizardStepUnitDataSet.UnitRow; 
      } 
      else 
      { 
       unitRow = (ultraGridOverview.ActiveRow.ListObject as DataRowView).Row as UC011_WizardStepUnitDataSet.UnitRow; 
      } 

      DialogResult dr = new DialogResult(); 
      FormSplitUnit form = new FormSplitUnit(); 

      form.ParentRow = unitRow; 
      form.UnitDataSet = _uc011_WizardStepUnitDataSet; 

      dr = form.ShowDialog(); 

      if (dr == DialogResult.Yes) 
      { 
       // Get splitted units from form 
       UC011_WizardStepUnitDataSet dataSet = form.GetDataSet(); 

       // Obsolete ? 
       //_uc011_WizardStepUnitDataSet.Unit.Merge(dataSet.Unit, true, MissingSchemaAction.Ignore); 

       // Update modified or add new units 
       UpdateSplittedUnitList(dataSet); 

       // Reset data to grid 
       //SetUltraGridData(); 

       // Update summary data 
       SetSummaryDataSet(); 
       ultraGridOverview.Rows[unitRow].Selected = true; 
       ultraGridOverview.Rows[_uc011_WizardStepUnitDataSet.Unit.Count - 1].Activate(); 
       ultraGridOverview.PerformAction(UltraGridAction.LastRowInGrid); 

      } 
     } 
+0

어떻게 알 수 있습니까? –

답변

1

활성 행의 하위 하위 행을 찾고 해당 행을보기로 강제로 스크롤해야합니다. 사용중인 Infragistics 컨트롤의 버전에 따라 UltraGridRow.HasChild()UltraGridRow.GetChild()을 조합하면 선택한 행의 마지막 하위 행을 식별하기 위해 하위 항목을 반복하는 데 도움이됩니다. 그런 다음 UltraGridView.ActiveScrollRegion.ScrollRowIntoView()이 원하는 스크롤을 강제 실행해야합니다.

구현이 독자 :

방법 이름의 일부를위한 운동으로 남아있는 Infragistics의의 버전에서 변경 한 스위트를 제어하지만, 이러한 또는 이와 유사한 방법은 여전히 ​​존재한다.

관련 문제