0

vb.netプログラムにウルトラグリッドとタイマーがあります。タイマーがチェックするたびに、クリックした選択した行がリセットされます。だから私は各ティックで行のインデックスを保存し、ティックの後にそれをリロードしたいと思います。問題は、グリッドにもグループがあるということです。したがって、2つのグループがあり、各グループに3つの行があり、他のグループには5つの行がある可能性があります。そのため、グループとそのグループ内の行を選択して保存し、チェックマークの後にリロードする方法を知る必要があります。ultragrid.activeRowなどで行を選択することはわかっています。

これが私のグループです

Dim dt As DataTable = Nothing

Timer1.Enabled = True
UltraGrid1.DataSource = Nothing
Generic.openOrders(dt)
UltraGrid1.DataSource = dt
Dim band As Infragistics.Win.UltraWinGrid.UltraGridBand = UltraGrid1.DisplayLayout.Bands(0)
UltraGrid1.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy

band.SortedColumns.Add(band.Columns("ORDERDATE"), False, True)
band.SortedColumns.Add(band.Columns("ORDERTIME"), False, True)
band.Columns("USERNAME").CellClickAction = CellClickAction.RowSelect
band.Columns("QUANTITY").CellClickAction = CellClickAction.RowSelect
band.Columns("ORDERLIST").CellClickAction = CellClickAction.RowSelect
band.Columns("LOCATION").CellClickAction = CellClickAction.RowSelect

band.Columns("PAID").Hidden = True
band.Columns("PROCESSING").Hidden = True
band.Columns("COMPLETED").Hidden = True
band.Columns("ITEMTIME").Hidden = True
band.Columns("ITEMPRICE").Hidden = True
band.Columns("ORDERPRICE").Hidden = True
band.Columns("READYORDER").Hidden = True
UltraGrid1.DisplayLayout.Override.AllowColSizing = Infragistics.Win.UltraWinGrid.ColumnAutoSizeMode.VisibleRows
UltraGrid1.Rows.ExpandAll(True)

私の出力は次のようなものです:

 ORDERDATE:
      ORDERTIME:
      ORDER1 ITEM1
      ORDER1 ITEM2
      ORDER1 ITEM3

      ORDERTIME:
      ORDER2 ITEM1
      ORDER2 ITEM2
 ORDERDATE:
      ORDERTIME:
      ORDER3 ITEM1
      ORDER3 ITEM2
      ORDER3 ITEM3
      ORDER3 ITEM4

私はこのコードでORDERDATE、ORDERTIME、ORDERのインデックスを取得することができました:

 If UltraGrid1.Selected.Rows.Count > 0 Then
            Dim rowSelected As UltraGridRow
            For Each rowSelected In UltraGrid1.Selected.Rows
                rowIndex = rowSelected.Index
                itemTimeIndex = rowSelected.ParentCollection.ParentRow.Index
                orderTimeIndex = rowSelected.ParentCollection.ParentRow.ParentCollection.ParentRow.Index

            Next
        End If

では、どうすればそれらを新しいウルトラグリッドに戻すことができますか?

4

1 に答える 1

0

グリッドを使用してグループ化を行い、グリッドがバインドされているデータがフラットであると仮定すると、ultraGrid1.Rows.GetRowWithListIndexを使用して、ソースリストの行のインデックスを渡し、アクティブ化する必要のある行を取得できます。 。

行にIDがある限り、そのIDを保存し、新しいリストで同じ行を見つけてから、GetRowWithListIndexメソッドを使用してグリッド内の新しい行を取得できます。関連するGroupByRowには、UltraGridRowによって公開されるParentRowプロパティがあります。これを使用できます。

于 2012-12-27T21:40:24.670 に答える