樹型控件排序

2017-09-15 14:59:44
黃善超
3621
最后編輯:tmtony8 于 2017-09-15 15:24:52

ctTree控件能夠以任一列排序。這可通過兩種不同的方法實現。第一種是標記一列為可排序列 (在創(chuàng)建列頭的設計時做) 然后單擊你想排序的列頭。第二種是使用排序方法。當可見列被排序時,排序將會以列項目的字符數據為準。

排序也可以基于所有節(jié)點數據或只是一個父節(jié)點的子節(jié)點。排序方法的第二個參數用于確定如何進行排序。

 

非字符型數據排序

默認情況下, 數據是基于字符數據排序。但是, 當我們需要對整數,實數與日期進行排序時,這就不夠了。在這種情況下,我們可以設置ColumnDataType屬性匹配需要排序的數據類型??丶⒆詣右赃m當的方式排序。

 

樹也能基于NodeCargo NodeData屬性排序。舉個例子, 下例中每當列2排序時,將會基于NodeData屬性排序。

 

Private Sub ctTree_PreSort( ByVal nColumn as Integer )
           If ( nColumn = 2 )
               ctTree.SortNewColumn -1
           End If
 End Sub

 

如果-1值提供給SortColumnSortNewColumn 屬性/方法, 排序將基于NodeData 屬性中的數據進行。 如果-2值提供給該屬性, 排序將基于NodeCargo屬性中的數據進行。

 

注意:ctTree中不可能隱藏列, 不過你可以給不存在的列分配文本并且基于那筆數據排序。舉個例子, 你可以定義3列但是為四列的每個列項目提供文本。如果我們基于第四列排序列表,我們本質上是以隱藏的列排序。

 

多列排序

允許同時排序至多三列。SortMultiColumns(多列排序)方法允許程序員指定至多三個不同列被排序。 即可用內部的也可用外部的PreSort方法。舉例:

Private Sub ctTree_PreSort( ByVal nColumn as Integer )
    if ( nColumn = 2 )
        ctTree.SortMultiColumns nColumn, 3, 4
    End If
End Sub

ctTree.SortMultiColumns 1, 3, 4
ctTree.SortList

 

以下項目涉及控件排序:

 

項目                                                                   類型                         訪問屬性

列頭已經單擊之后禁止列排序                            void                           CancelSort

確定列是否可排序                                            boolean                      ColumnSortable

用于中斷排序過程的事件                                     none                        PreSort

顯示排序方向箭頭                                          boolean                         SortArrows

排序列                               .                               integer                       SortColumn 

升序還是降序                                                     integer                       SortDirection

指定當前列表是否已排序                                  boolean                       Sorted

在樹中排序數據                                                 boolean                      Sort

將要運行排序的數據列,僅在PreSort事件中有效 .  integer                     SortNewColumn

確定排序是否對事件敏感            .                     boolean                       SortOnCase

移動訪問