如何在DevExpress GridView中查找展开/折叠主行和分组行的数量?

时间:2012-01-18 20:12:58

标签: vb.net winforms visual-studio-2010 devexpress

我目前正在Visual Studio 2010中使用DevExpress 10.2。在previous question中,我尝试使用用户选择展开或折叠的主行和/或组部分来打印DevExpress GridControl的当前用户视图。我被告知此时此刻不可能。我现在决定使用以下代码:

gvPOinvoiceBanded.OptionsPrint.ExpandAllGroups = False
gvPOinvoiceBanded.OptionsPrint.ExpandAllDetails = False

当我希望它在打印时完全折叠为默认设置为true

我只是想知道是否有某种方法要检查扩展主行的总数或折叠主行的总数。我也想为组做同样的事情,因为你可以扩展组,而不是主行。

1 个答案:

答案 0 :(得分:4)

您可以使用如下循环获取扩展组行的数量:

    Dim ExpandedGroupCount As Integer = 0
    Dim Handle As Integer = -1  'group rows have negative row handles
    Do Until GridView1.GetRow(Handle) Is Nothing
        If GridView1.GetRowExpanded(Handle) Then
            ExpandedGroupCount += 1
        End If
        Handle -= 1
    Loop
    'Do whatever with expanded group count
    MsgBox(String.Format("Number of Expanded Group Rows: {0}{2}Number of Group Rows: {1}",
          ExpandedGroupCount, Math.Abs(Handle + 1), Environment.NewLine))

同样,您可以执行此操作以获取扩展主行的计数:

    Handle = 0
    Dim ExpandedMasterRowCount As Integer = 0
    Do Until GridView1.GetRow(Handle) Is Nothing
        If GridView1.IsMasterRow(Handle) Then
            If GridView1.GetMasterRowExpanded(Handle) Then
                ExpandedMasterRowCount += 1
            End If
        End If
        Handle += 1
    Loop
    MsgBox(String.Format("Number of Expanded Master Rows: {0}", ExpandedMasterRowCount))

当然,如果你只是检查,以便你可以看到你是否需要设置崩溃,这可能不值得努力。没有直接的财产提供您正在寻找的计数。

您还可以使用折叠和展开行时触发的事件,以便在更改时跟踪计数。你必须要小心,因为事件只会在展开或崩溃时触发一次。因此,如果您使用该方法,请务必检查GridControl.InvalidRowHandle的事件参数参数中的rowHandle。这是在崩溃或全部展开的情况下使用的值。