原創(chuàng)|其它|編輯:郝浩|2011-08-11 14:32:56.000|閱讀 712 次
概述:Spread支持開發(fā)人員自定義篩選數(shù)據(jù)的用戶體驗(yàn)。基于行數(shù)據(jù)篩選,你可以允許用戶分列進(jìn)行篩選,從而僅顯示符合了下拉列表中條件的行的數(shù)據(jù),或者根據(jù)篩選結(jié)果更改行的外觀。你可以使用默認(rèn)的篩選方式,或者你可以從實(shí)際出發(fā),自定義篩選器的每一個(gè)方面。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Spread支持開發(fā)人員自定義篩選數(shù)據(jù)的用戶體驗(yàn)。基于行數(shù)據(jù)篩選,你可以允許用戶分列進(jìn)行篩選,從而僅顯示符合了下拉列表中條件的行的數(shù)據(jù),或者根據(jù)篩選結(jié)果更改行的外觀。你可以使用默認(rèn)的篩選方式,或者你可以從實(shí)際出發(fā),自定義篩選器的每一個(gè)方面。
允許用戶進(jìn)行行篩選
默 認(rèn)情況下,表單禁止用戶對(duì)表單的行進(jìn)行篩選。你可以開啟這一特性, 允許用戶在所有列或者指定的列中進(jìn)行行篩選。根據(jù)你要隱藏被篩除的列,還是更改列的外觀,分別使用HideRowFilter類或 StyleRowFilter類。 使用列AllowAutoFilter 的屬性對(duì)給定的列進(jìn)行篩選。
完成設(shè)置之后,用戶可以選擇下拉列表中的選項(xiàng)對(duì)列進(jìn)行篩選。
根 據(jù)一列中的值進(jìn)行行篩選(隱藏篩除的行)時(shí),請(qǐng)確保列首可見。使用HideRowFilter類選擇行篩選的種類, 使用AllowAutoFilter屬性,在制定的列中進(jìn)行篩選。 下面的示例假設(shè)單元格中有一些數(shù)據(jù),可以是指定的數(shù)據(jù),也可以是綁定的數(shù)據(jù)源。
fpSpread1.ActiveSheet.ColumnHeaderVisible = true; FarPoint.Win.Spread.HideRowFilter hideRowFilter = new FarPoint.Win.Spread.HideRowFilter(fpSpread1.ActiveSheet); fpSpread1.ActiveSheet.Columns[1,3].AllowAutoFilter = true; |
使用行篩選
一旦你在一列使用了行篩選,列首會(huì)顯示一個(gè)指示器。 下表總結(jié)了行篩選指示器的不同外觀:
行篩選指示器 |
描述 |
![]() |
未進(jìn)行行篩選的表頭單元格的外觀;這種情況通常出現(xiàn)在無(wú)篩選時(shí),或行篩選未生效時(shí)。 |
![]() |
可以進(jìn)行行篩選,但是沒(méi)有被篩除的行時(shí)的表頭單元格的外觀;這種情況通常發(fā)生在全部?jī)?nèi)容滿足篩選條件的時(shí)候。 |
![]() |
可以進(jìn)行行篩選,并且進(jìn)行了一部分篩選的表頭單元格的外觀;這種情況通常發(fā)生在根據(jù)行內(nèi)容 進(jìn)行了一部分行篩選時(shí)。 |
列首顯示了一個(gè)似下拉箭頭符號(hào)的行篩選指示器。點(diǎn)擊這個(gè)指示器顯示一個(gè)下拉菜單,包含了篩選器的各個(gè)選項(xiàng)。 從列表中選擇一項(xiàng),這樣篩選就會(huì)生效,并且(在本列中)所有符合的行就會(huì)被篩選出來(lái)。 默認(rèn)的下拉列表包括所有在本列中單元格中的不重復(fù)的文本。
下面的圖表列出下拉列表中的條目。
篩選器列表項(xiàng) |
描述 |
|
(全部) |
不論內(nèi)容,包含或允許在此列的所有行 |
|
[內(nèi)容] |
僅包含或允許此列中有特定的單元格內(nèi)容的行 |
|
(空白) |
僅包含或允許此列中空白(空單元格)的行 |
|
(非空) |
僅包含或允許此列中非空的行(非空的單元格),換言之,包含內(nèi)容的任何單元格。 |
|
在 給定的表單中,多個(gè)列可能擁有篩選器。基于列中的單元格內(nèi)容,不同的列可以有不同的篩選器。 篩選的結(jié)果類似于根據(jù)主鍵和從鍵進(jìn)行數(shù)據(jù)排序。在最初的列中篩選器列表里面的這些選項(xiàng)就會(huì)篩選一些行, 剩下的過(guò)濾器列表中的選項(xiàng)是所有可能的行的一個(gè)子集。通過(guò)選擇多個(gè)篩選器,結(jié)果就會(huì)僅僅是那些符合所有篩選標(biāo)準(zhǔn)的行。
設(shè)置篩除行的外觀
你 可以自定義篩除行的外觀,以便于你查看哪些行被選中,哪些被排除。符合標(biāo)準(zhǔn)的行被稱為“選中”,那些不符合篩選標(biāo)準(zhǔn)的行被稱為“排除”。 篩選可以隱藏那些被排除的行,也可以改變選中行和排除行的外觀 如果你想要改變外觀,這樣你就可以繼續(xù)顯示所有數(shù)據(jù),與此同時(shí),高亮標(biāo)注那些符合某些標(biāo)準(zhǔn)的行。 然后,你必須定義選中行的樣式與被排除行的樣式。
你可以通過(guò)創(chuàng)建包含所有樣式設(shè)置的NamedStyle對(duì)象來(lái)定義樣式。 然后當(dāng)行篩選應(yīng)用于一列時(shí),你可以通過(guò)引用對(duì)本篩選生效的NamedStyle對(duì)象 來(lái)使指定的樣式設(shè)置生效。
在下列圖表中,基于給定的代碼,篩選項(xiàng)目中的Gibson選項(xiàng)會(huì)將有篩選項(xiàng)的行設(shè)置成一種外觀樣式,將其他的行設(shè)置成另外一種外觀樣式。
這里顯示了如何使用代碼啟動(dòng)行篩選。
// 定義應(yīng)用于篩除行的樣式. 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; // 為第一列創(chuàng)建新的篩選設(shè)置(使用默認(rèn)設(shè)置). FarPoint.Win.Spread.FilterColumnDefinition fcdef = new FarPoint.Win.Spread.FilterColumnDefinition(0); // 創(chuàng)建一個(gè)StyleRowFilter對(duì)象(樣式篩選器), 并添加到上述篩選設(shè)置中. FarPoint.Win.Spread.StyleRowFilter styleFilter = new FarPoint.Win.Spread.StyleRowFilter(fpSpread1.ActiveSheet, inStyle, outStyle); styleFilter.AddColumn(fcdef); // 為表單設(shè)置已創(chuàng)建的行篩選器對(duì)象。 fpSpread1.ActiveSheet.RowFilter = styleFilter; // 以文本對(duì)數(shù)據(jù)區(qū)域進(jìn)行篩選。 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); |
定義篩選項(xiàng)目列表的內(nèi)容
你可以 根據(jù)列中指定單元格的內(nèi)容篩選表單中的所有行。 要進(jìn)行這樣的行篩選,僅需完成以下簡(jiǎn)單的步驟:
定義篩選條件
定義篩選的結(jié)果行為(改變行的外觀或者隱藏行)
定義任意自定義的篩選器
應(yīng)用此篩選器
為每一列定義篩選標(biāo)準(zhǔn),此步驟稱為列篩選的定義。 這一用來(lái)根據(jù)列的內(nèi)容來(lái)篩選的條件被分配給單個(gè)列。將這些單一的列的條件或篩選設(shè)置合并到一個(gè)集合中。
如果你要定義即將被篩選的行的外觀,你可以通過(guò)定義一個(gè)選中樣式和一個(gè)排除樣式,或者直接隱藏被排除的行。
通過(guò)設(shè)置DefaultRowFilter類中的相關(guān)屬性,你可以自定義在下拉列表中的下列選項(xiàng)的顯示詞語(yǔ),
All - AllString Property
Blanks - BlanksString Property
NonBlanks - NonBlanksString Property
在一張表單中,對(duì)所有列或某些特定列進(jìn)行行篩選(將篩選器設(shè)置集合應(yīng)用于表單中的列)。
這里顯示了如何使用代碼進(jìn)行行篩選
1. 進(jìn)行列篩選的定義
2. 把這些定義組合成一個(gè)集合
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; |
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載