'宣言 Public Function GetRow( _ ByVal child As ChildRow _ ) As UltraGridRow
public UltraGridRow GetRow( ChildRow child )
GetRow メソッドは、グリッドの階層的な構造を通してナビゲートするために使用できるひとつの機能です。一番上のバンドで最初の行または最終の行を返すためにこのメソッドを使用でき、そのバンドで行を説明します (HasNextSibling、HasPrevSibling および GetSibling メソッドを使用)。HasChild および GetChild メソッドを使用して、行の子バンドにも踏み込むことができます。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Private Sub TraverseAllRowsHelper(ByVal startRow As UltraGridRow, ByRef rowsCount As Integer, ByRef groupByRowsCount As Integer) Dim row As UltraGridRow = startRow While Not row Is Nothing If TypeOf row Is UltraGridGroupByRow Then ' Write code here to process the group by row. groupByRowsCount += 1 Else ' Write code here to process the regular by row. rowsCount += 1 End If ' If the row has any child rows, then process them too. If row.HasChild(False) Then Me.TraverseAllRowsHelper(row.GetChild(ChildRow.First), rowsCount, groupByRowsCount) End If row = row.GetSibling(SiblingRow.Next, True, False) End While End Sub Private Sub Button71_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button71.Click Dim rowsCount As Integer = 0 Dim groupByRowsCount As Integer = 0 ' Get the first row in the UltraGrid. Dim firstRow As UltraGridRow = Me.ultraGrid1.GetRow(ChildRow.First) ' Call the helper method which is a recursive implmentation for traversing rows. MessageBox.Show("Please wait. This operation may take a while depending on number of rows.") Me.TraverseAllRowsHelper(firstRow, rowsCount, groupByRowsCount) ' Show a dialog showing the number of regular rows and number of group-by rows. MessageBox.Show("The UltraGrid has " & rowsCount & " number of regular rows, and " & groupByRowsCount & " number of group-by rows.") End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void TraverseAllRowsHelper( UltraGridRow startRow, ref int rowsCount, ref int groupByRowsCount ) { UltraGridRow row = startRow; while ( null != row ) { if ( row is UltraGridGroupByRow ) { // Write code here to process the group by row. groupByRowsCount++; } else { // Write code here to process the regular by row. rowsCount++; } // If the row has any child rows, then process them too. if ( row.HasChild( false ) ) { this.TraverseAllRowsHelper( row.GetChild( ChildRow.First ), ref rowsCount, ref groupByRowsCount ); } row = row.GetSibling( SiblingRow.Next, true, false ); } } private void button71_Click(object sender, System.EventArgs e) { int rowsCount = 0; int groupByRowsCount = 0; // Get the first row in the UltraGrid. UltraGridRow firstRow = this.ultraGrid1.GetRow( ChildRow.First ); // Call the helper method which is a recursive implmentation for traversing rows. MessageBox.Show( "Please wait. This operation may take a while depending on number of rows." ); this.TraverseAllRowsHelper( firstRow, ref rowsCount, ref groupByRowsCount ); // Show a dialog showing the number of regular rows and number of group-by rows. MessageBox.Show( "The UltraGrid has " + rowsCount + " number of regular rows, and " + groupByRowsCount + " number of group-by rows." ); }