原創|其它|編輯:郝浩|2011-08-11 14:32:56.000|閱讀 712 次
概述:Spread支持開發人員自定義篩選數據的用戶體驗。基于行數據篩選,你可以允許用戶分列進行篩選,從而僅顯示符合了下拉列表中條件的行的數據,或者根據篩選結果更改行的外觀。你可以使用默認的篩選方式,或者你可以從實際出發,自定義篩選器的每一個方面。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Spread支持開發人員自定義篩選數據的用戶體驗。基于行數據篩選,你可以允許用戶分列進行篩選,從而僅顯示符合了下拉列表中條件的行的數據,或者根據篩選結果更改行的外觀。你可以使用默認的篩選方式,或者你可以從實際出發,自定義篩選器的每一個方面。
允許用戶進行行篩選
默 認情況下,表單禁止用戶對表單的行進行篩選。你可以開啟這一特性, 允許用戶在所有列或者指定的列中進行行篩選。根據你要隱藏被篩除的列,還是更改列的外觀,分別使用HideRowFilter類或 StyleRowFilter類。 使用列AllowAutoFilter 的屬性對給定的列進行篩選。
完成設置之后,用戶可以選擇下拉列表中的選項對列進行篩選。
根 據一列中的值進行行篩選(隱藏篩除的行)時,請確保列首可見。使用HideRowFilter類選擇行篩選的種類, 使用AllowAutoFilter屬性,在制定的列中進行篩選。 下面的示例假設單元格中有一些數據,可以是指定的數據,也可以是綁定的數據源。
fpSpread1.ActiveSheet.ColumnHeaderVisible = true; FarPoint.Win.Spread.HideRowFilter hideRowFilter = new FarPoint.Win.Spread.HideRowFilter(fpSpread1.ActiveSheet); fpSpread1.ActiveSheet.Columns[1,3].AllowAutoFilter = true; |
使用行篩選
一旦你在一列使用了行篩選,列首會顯示一個指示器。 下表總結了行篩選指示器的不同外觀:
行篩選指示器 |
描述 |
![]() |
未進行行篩選的表頭單元格的外觀;這種情況通常出現在無篩選時,或行篩選未生效時。 |
![]() |
可以進行行篩選,但是沒有被篩除的行時的表頭單元格的外觀;這種情況通常發生在全部內容滿足篩選條件的時候。 |
![]() |
可以進行行篩選,并且進行了一部分篩選的表頭單元格的外觀;這種情況通常發生在根據行內容 進行了一部分行篩選時。 |
列首顯示了一個似下拉箭頭符號的行篩選指示器。點擊這個指示器顯示一個下拉菜單,包含了篩選器的各個選項。 從列表中選擇一項,這樣篩選就會生效,并且(在本列中)所有符合的行就會被篩選出來。 默認的下拉列表包括所有在本列中單元格中的不重復的文本。
下面的圖表列出下拉列表中的條目。
篩選器列表項 |
描述 |
|
(全部) |
不論內容,包含或允許在此列的所有行 |
|
[內容] |
僅包含或允許此列中有特定的單元格內容的行 |
|
(空白) |
僅包含或允許此列中空白(空單元格)的行 |
|
(非空) |
僅包含或允許此列中非空的行(非空的單元格),換言之,包含內容的任何單元格。 |
|
在 給定的表單中,多個列可能擁有篩選器。基于列中的單元格內容,不同的列可以有不同的篩選器。 篩選的結果類似于根據主鍵和從鍵進行數據排序。在最初的列中篩選器列表里面的這些選項就會篩選一些行, 剩下的過濾器列表中的選項是所有可能的行的一個子集。通過選擇多個篩選器,結果就會僅僅是那些符合所有篩選標準的行。
設置篩除行的外觀
你 可以自定義篩除行的外觀,以便于你查看哪些行被選中,哪些被排除。符合標準的行被稱為“選中”,那些不符合篩選標準的行被稱為“排除”。 篩選可以隱藏那些被排除的行,也可以改變選中行和排除行的外觀 如果你想要改變外觀,這樣你就可以繼續顯示所有數據,與此同時,高亮標注那些符合某些標準的行。 然后,你必須定義選中行的樣式與被排除行的樣式。
你可以通過創建包含所有樣式設置的NamedStyle對象來定義樣式。 然后當行篩選應用于一列時,你可以通過引用對本篩選生效的NamedStyle對象 來使指定的樣式設置生效。
在下列圖表中,基于給定的代碼,篩選項目中的Gibson選項會將有篩選項的行設置成一種外觀樣式,將其他的行設置成另外一種外觀樣式。
這里顯示了如何使用代碼啟動行篩選。
// 定義應用于篩除行的樣式. FarPoint.Win.Spread.NamedStyle inStyle = new FarPoint.Win.Spread.NamedStyle(); FarPoint.Win.Spread.NamedStyle outStyle = new FarPoint.Win.Spread.NamedStyle(); inStyle.BackColor = Color.LightCyan; inStyle.ForeColor = Color.DarkRed; outStyle.BackColor = Color.LemonChiffon; outStyle.ForeColor = Color.Green; // 為第一列創建新的篩選設置(使用默認設置). FarPoint.Win.Spread.FilterColumnDefinition fcdef = new FarPoint.Win.Spread.FilterColumnDefinition(0); // 創建一個StyleRowFilter對象(樣式篩選器), 并添加到上述篩選設置中. FarPoint.Win.Spread.StyleRowFilter styleFilter = new FarPoint.Win.Spread.StyleRowFilter(fpSpread1.ActiveSheet, inStyle, outStyle); styleFilter.AddColumn(fcdef); // 為表單設置已創建的行篩選器對象。 fpSpread1.ActiveSheet.RowFilter = styleFilter; // 以文本對數據區域進行篩選。 fpSpread1.ActiveSheet.DefaultStyle.CellType = new FarPoint.Win.Spread.CellType.TextCellType(); fpSpread1.ActiveSheet.SetText(0, 0, "Fender"); fpSpread1.ActiveSheet.SetText(1, 0, "Gibson"); fpSpread1.ActiveSheet.SetText(2, 0, "Fender"); fpSpread1.ActiveSheet.SetText(3, 0, "Ibanez"); fpSpread1.ActiveSheet.SetText(4, 0, "Gibson"); fpSpread1.ActiveSheet.SetText(5, 0, "Yamaha"); fpSpread1.ActiveSheet.SetText(0, 1, "AST-100 DMC"); fpSpread1.ActiveSheet.SetText(1, 1, "Les Paul Standard Double Cut Plus"); fpSpread1.ActiveSheet.SetText(2, 1, "ST58-70TX"); fpSpread1.ActiveSheet.SetText(3, 1, "AGS83B"); fpSpread1.ActiveSheet.SetText(4, 1, "Les Paul Supreme"); fpSpread1.ActiveSheet.SetColumnWidth(0, 90); fpSpread1.ActiveSheet.SetColumnWidth(1, 210); |
定義篩選項目列表的內容
你可以 根據列中指定單元格的內容篩選表單中的所有行。 要進行這樣的行篩選,僅需完成以下簡單的步驟:
定義篩選條件
定義篩選的結果行為(改變行的外觀或者隱藏行)
定義任意自定義的篩選器
應用此篩選器
為每一列定義篩選標準,此步驟稱為列篩選的定義。 這一用來根據列的內容來篩選的條件被分配給單個列。將這些單一的列的條件或篩選設置合并到一個集合中。
如果你要定義即將被篩選的行的外觀,你可以通過定義一個選中樣式和一個排除樣式,或者直接隱藏被排除的行。
通過設置DefaultRowFilter類中的相關屬性,你可以自定義在下拉列表中的下列選項的顯示詞語,
All - AllString Property
Blanks - BlanksString Property
NonBlanks - NonBlanksString Property
在一張表單中,對所有列或某些特定列進行行篩選(將篩選器設置集合應用于表單中的列)。
這里顯示了如何使用代碼進行行篩選
1. 進行列篩選的定義
2. 把這些定義組合成一個集合
3. 定義樣式
4. 完成行篩選
// Declare the row filter and column definitions.
FarPoint.Win.Spread.FilterColumnDefinitionCollection fcdc = new FarPoint.Win.Spread.FilterColumnDefinitionCollection(); FarPoint.Win.Spread.FilterColumnDefinition fcd1 = new FarPoint.Win.Spread.FilterColumnDefinition(2); FarPoint.Win.Spread.FilterColumnDefinition fcd2 = new FarPoint.Win.Spread.FilterColumnDefinition(3); FarPoint.Win.Spread.FilterColumnDefinition fcd3 = new FarPoint.Win.Spread.FilterColumnDefinition(1); // Add column filter definitions to a collection. fcdc.Add(fcd1); fcdc.Add(fcd2); fcdc.Add(fcd3); FarPoint.Win.Spread.NamedStyle inStyle = new FarPoint.Win.Spread.NamedStyle(); FarPoint.Win.Spread.NamedStyle outStyle = new FarPoint.Win.Spread.NamedStyle(); inStyle.BackColor = Color.Yellow; outStyle.BackColor = Color.Aquamarine; // Apply styles and column filter definitions to the row filter. FarPoint.Win.Spread.StyleRowFilter rowFilter = new FarPoint.Win.Spread.StyleRowFilter(fpSpread1.ActiveSheet,inStyle,outStyle); // Apply the column definition to the filter. rowFilter.ColumnDefinitions = fcdc; // Apply the row filter to the sheet. fpSpread1.ActiveSheet.RowFilter = rowFilter; |
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載