專業(yè)做俄語網(wǎng)站建設(shè)司拉人頭最暴利的app
Goto Data Grid 數(shù)據(jù)網(wǎng)格
Filter and Search 篩選和搜索
Filter Drop-down Menus (Excel-style) 篩選器下拉菜單(Excel 樣式)
要調(diào)用列的篩選器下拉菜單,請單擊列標(biāo)題中的篩選器圖標(biāo)。在 “Values” 選項(xiàng)卡中,用戶可以從 Data Grid 顯示的單元格值中選擇特定的單元格值。
“過濾器”選項(xiàng)卡為用戶提供了更廣泛的過濾器選項(xiàng)池。例如,當(dāng)用戶按日期篩選數(shù)據(jù)時,您可以僅顯示與上周對應(yīng)的記錄。
過濾器下拉菜單的內(nèi)容取決于相關(guān)網(wǎng)格列顯示的數(shù)據(jù)類型。例如,下圖說明了當(dāng)數(shù)據(jù)按數(shù)字列篩選時,此菜單的外觀。
這種類型的過濾器下拉菜單稱為 “Excel-style”,是 v17.1 及更高版本中的默認(rèn)過濾器菜單類型。
Related API 相關(guān) API
- GridOptionsCustomization.AllowFilter — 禁用整個數(shù)據(jù)網(wǎng)格的數(shù)據(jù)篩選功能。
- OptionsColumnFilter.AllowFilter — 禁用特定列的篩選功能。
- ColumnView.ColumnFilterChanged — 當(dāng)列的篩選條件更改時發(fā)生。當(dāng) Find Panel 完成搜索時,也會引發(fā)此事件。
- ColumnViewOptionsFilter.ColumnFilterPopupMode — 如果您的 DevExpress 安裝版本低于 v17.1,請將此設(shè)置切換到 Excel 以啟用 Excel 樣式的篩選器下拉菜單。
- ColumnView.OptionsFilter — 提供對影響所有列的篩選器菜單的設(shè)置的訪問。有關(guān)可用設(shè)置的列表,請參閱 ColumnViewOptionsFilter 類成員。
- GridColumn.OptionsFilter — 提供對特定列的篩選設(shè)置的訪問。有關(guān)可用設(shè)置的列表,請參閱 OptionsColumnFilter 類成員。
- ColumnView.ShowFilterPopupExcel — 處理此事件以自定義 Excel 樣式的篩選器。
請參閱以下主題以了解如何動態(tài)自定義 Excel 樣式的菜單:高級篩選器和搜索概念。
Classic Filter Drop-down Menus 下拉菜單
數(shù)據(jù)網(wǎng)格可以顯示經(jīng)典的篩選器菜單,而不是 Excel 樣式的下拉菜單。經(jīng)典篩選器菜單包括 DateTime 列的日歷和其他類型列的常規(guī)下拉菜單。
Related API: 相關(guān) API:
- ColumnViewOptionsFilter.ColumnFilterPopupMode — 將此屬性設(shè)置為 Classic 以在 v17.1 及更高版本中啟用經(jīng)典篩選器下拉菜單。經(jīng)典菜單已在舊版本中啟用。
- WindowsFormsSettings.DefaultSettingsCompatibilityMode — 允許您啟用經(jīng)典篩選器下拉菜單的替代屬性。要啟用經(jīng)典篩選器菜單,請將此屬性設(shè)置為 v16。
- ColumnViewOptionsFilter.ColumnFilterPopupRowCount — 獲取或設(shè)置常規(guī)下拉菜單可以同時顯示的最大項(xiàng)數(shù)。
- ColumnViewOptionsFilter.AllowColumnMRUFilterList — 如果啟用此屬性,則常規(guī)下拉列表會記住用戶最近選擇的值。這些值顯示在默認(rèn)的 “Custom” 項(xiàng)之前。
- OptionsColumnFilter.ShowBlanksFilterItems — 獲取或設(shè)置“(Blanks)”和“(Non Blanks)”項(xiàng)在篩選器下拉菜單中是否可用。
- ColumnView.ColumnFilterChanged - 當(dāng)列的篩選條件發(fā)生更改時發(fā)生。當(dāng) Find Panel 完成搜索時,也會引發(fā)此事件。
您還可以使用檢查列表菜單而不是常規(guī)下拉菜單。
Related API: 相關(guān) API:
-
OptionsColumnFilter.FilterPopupMode — 將屬性設(shè)置為 CheckedList 以啟用此篩選器菜單樣式。
-
ColumnViewOptionsFilter.ShowAllTableValuesInCheckedFilterPopup — 獲取或設(shè)置選中的篩選器下拉列表是顯示所有數(shù)據(jù)源記錄中的唯一值,還是僅顯示滿足當(dāng)前篩選條件的記錄中的唯一值。
-
ColumnView.ShowFilterPopupCheckedListBox — 此事件允許您修改檢查列表篩選器菜單中的項(xiàng)目,包括標(biāo)準(zhǔn)的“全選”項(xiàng)目。
您還可以將日歷篩選器菜單替換為選中列表。此外,您還可以在三種類型的基于日歷的菜單之間進(jìn)行選擇:DateSmart(默認(rèn)菜單類型)、DateAlt 和 Date。下圖說明了 DateAlt 菜單。
所有這些菜單都包含相同的日歷,該日歷選擇特定日期,但具有不同的日期間隔集。下表列出了其中的幾個間隔。
Related API: 相關(guān) API:
-
OptionsColumnFilter.FilterPopupMode — 將此屬性設(shè)置為 Date、DateSmart 或 DateAlt 以選擇所需的基于日歷的下拉菜單。
-
OptionsColumnFilter.ImmediateUpdatePopupDateFilterOnCheck — 如果啟用此設(shè)置,則在用戶切換基于日歷的菜單復(fù)選框后立即應(yīng)用篩選器。
-
OptionsColumnFilter.ImmediateUpdatePopupDateFilterOnDateChange — 如果啟用此設(shè)置,則在用戶在基于日歷的菜單中選擇日期(或日期范圍)后,將立即應(yīng)用篩選器。
-
OptionsColumnFilter.ShowEmptyDateFilter — 獲取或設(shè)置下拉菜單是否顯示“Show Empty”篩選器。用戶可以檢查此篩選器以查看在相應(yīng)的 DateTime 列中沒有值的記錄。
Automatic Filter Row 自動篩選行
在運(yùn)行時篩選數(shù)據(jù)的另一種方法是使用 Automatic Filter Row。此行顯示在常規(guī)數(shù)據(jù)行的上方,允許用戶鍵入篩選條件值(包括“*”和“%”通配符)并選擇篩選條件運(yùn)算符(NotLike、Equals、Between 等)。
請注意,顯示在 Automatic Filter Row 中的單元格編輯器會忽略其掩碼,并允許用戶輸入任何字符。
請注意,如果 Auto Filter Row 單元格使用 RepositoryItemRichTextEdit 就地編輯器,則用戶只能為此單元格選擇“Like”篩選條件。其他條件(“開頭為”、“等于”等)不適用于 RTF 值。
Related API: 相關(guān) API:
- GridOptionsView.ShowAutoFilterRow — 管理 Automatic Filter Row 的可見性。
- OptionsColumnFilter.AllowAutoFilter — 允許您從 Automatic Filter Row (自動篩選行) 中排除特定列,而不隱藏整行。
- GridView.PopupMenuShowing — 允許您隱藏或刪除特定條件。
- GridOptionsFilter.AllowAutoFilterConditionChange — 指定自動篩選行的條件選擇器是否可見。如果禁用此選擇器,則將使用以下運(yùn)算符比較輸入的值:“等于”(用于 CheckEdit、LookUpEdit 和 ImageComboBoxEdit 列)或“喜歡”(用于其他列)。
- OptionsColumnFilter.AutoFilterCondition — 指定此列的篩選條件運(yùn)算符(“Equals”、“Like”、“Greater”等)。
- OptionsColumnFilter.ImmediateUpdateAutoFilter — 如果啟用此設(shè)置,則數(shù)據(jù)網(wǎng)格將在用戶修改篩選條件后立即篩選其記錄。否則,在用戶按 Enter 鍵或?qū)⒔裹c(diǎn)移動到另一個單元格之前,不會應(yīng)用篩選器。
- GridView.ShowAutoFilterConditionsMenu — 從代碼中調(diào)用此方法以調(diào)用特定列的 Automatic Filter Row 彈出菜單。
- GridView.GetAutoFilterValue、GridView.SetAutoFilterValue — 允許您檢索當(dāng)前應(yīng)用的自動篩選行條件并從代碼中應(yīng)用新條件的方法。
Filter Panel Filter 面板
應(yīng)用過濾器時,View (視圖) 將顯示一個過濾器面板。用戶可以使用此面板來修改和刪除當(dāng)前過濾器。
Related API: 相關(guān) API:
- ColumnViewOptionsView.ShowFilterPanelMode — 管理篩選器面板的可見性。
- ColumnView.ActiveFilterEnabled — 允許您打開或關(guān)閉當(dāng)前篩選器。
- ColumnViewOptionsFilter.AllowMRUFilterList — 允許您隱藏使用最近應(yīng)用的篩選器調(diào)用列表的按鈕。
- ColumnViewOptionsFilter.AllowFilterEditor — 控制“編輯篩選器”按鈕的可見性。
Incremental Search 增量搜索
用戶可以聚焦網(wǎng)格列并開始鍵入。Data Grid 聚焦并突出顯示第一個匹配記錄。要查找其他記錄,請按 Ctrl+Up 和 Ctrl+Down 熱鍵。
- GridOptionsBehavior.AllowIncrementalSearch — 啟用或禁用增量搜索。
- ColumnView.GetIncrementalText — 返回在增量搜索期間搜索的文本。
- GridView.StartIncrementalSearch、GridView.StopIncrementalSearch — 從代碼中調(diào)用這些方法以手動觸發(fā)和取消增量搜索。
Filter Editor 過濾器編輯器
Filter Editor 對話框允許用戶構(gòu)建復(fù)雜的篩選條件,這些條件由多個表達(dá)式組合而成。要調(diào)用此對話框,用戶可以執(zhí)行以下操作之一:
- 單擊 Filter 面板中的 “Edit Filter”。
- 在常規(guī)的下拉過濾器菜單中選擇“(自定義)”。
- 右鍵單擊列標(biāo)題并選擇 “Filter Editor”。
您可以修改 ColumnViewOptionsFilter.DefaultFilterEditorView 屬性,以啟用篩選器編輯器的“文本”面板/選項(xiàng)卡,用戶可以在其中手動鍵入篩選器表達(dá)式。
Related API: 相關(guān) API:
- ColumnViewOptionsFilter.AllowFilterEditor — 獲取或設(shè)置篩選器編輯器是否可用。
- ColumnView.CustomFilterDialog — 處理此事件以更改用戶單擊“自定義”篩選器下拉菜單項(xiàng)時的默認(rèn)行為。請參閱以下主題以了解更多信息:高級篩選和搜索概念。
- ColumnView.FilterEditorCreated — 當(dāng) Filter Editor 即將顯示時,將觸發(fā)此事件。該事件允許您自定義 Editor 對話框或阻止其顯示。
- ColumnViewOptionsFilter.UseNewCustomFilterDialog — 啟用此屬性后,用戶不僅可以根據(jù)常量自定義值篩選 GridColumn 的值,還可以根據(jù)其他 GridColumn 的值進(jìn)行篩選。
- ColumnViewOptionsFilter.FilterEditorAggregateEditing — 此屬性指定用戶是否可以基于集合屬性創(chuàng)建篩選器。
以下代碼片段允許用戶使用 SpinEdit 和 CalcEdit 編輯器篩選 “Price” 列數(shù)據(jù)。
private void GridView1_FilterEditorCreated(object sender, DevExpress.XtraGrid.Views.Base.FilterControlEventArgs e) {e.FilterControl.BeforeShowValueEditor += FilterControl_BeforeShowValueEditor;
}
RepositoryItemSpinEdit reSpinEdit = new RepositoryItemSpinEdit();
RepositoryItemCalcEdit reCalcEdit = new RepositoryItemCalcEdit();
private void FilterControl_BeforeShowValueEditor(object sender, DevExpress.XtraEditors.Filtering.ShowValueEditorEventArgs e) {if (e.CurrentNode.FirstOperand.PropertyName != "Price") return;RepositoryItemTextEdit item = null;if (e.FocusedElementIndex == 2)item = reSpinEdit;elseitem = reCalcEdit;item.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;item.Mask.EditMask = "c";e.CustomRepositoryItem = item;
}
Find Panel “查找”面板
“查找面板”允許用戶應(yīng)用臨時篩選器,以一次篩選所有數(shù)據(jù)網(wǎng)格列中的數(shù)據(jù)。要調(diào)用此面板,請在運(yùn)行時按 “Ctrl+F”。鍵入您需要搜索的文本,然后按 Enter 或單擊“查找”。
請注意,“查找”面板不會突出顯示包含 HTML 文本的單元格。
- ColumnViewOptionsFind.AllowFindPanel — 管理“查找”面板的可用性。
- ColumnViewOptionsFind.Behavior — 獲取或設(shè)置是否隱藏與查詢不匹配的記錄。
- ColumnViewOptionsFind.ParserKind — 如果輸入到“查找”面板中的文本包含空格,則面板會將此字符串拆分為單獨(dú)的邏輯塊。ParserKind 設(shè)置指定如何將這些塊組合到搜索查詢中。
- ColumnViewOptionsFind.Condition — 獲取或設(shè)置數(shù)據(jù)網(wǎng)格搜索輸入到“查找面板”中的字符串所依據(jù)的條件。
- ColumnViewOptionsFind.FindMode — 獲取或設(shè)置用戶是必須按 Enter 還是單擊“查找”按鈕才能開始搜索,還是在一定延遲后自動啟動(ColumnViewOptionsFind.FindDelay 屬性)。
- ColumnViewOptionsFind.AllowFindInExpandedDetails — 獲取或設(shè)置是否在展開的詳細(xì)信息視圖中搜索數(shù)據(jù)。
Search in Column Headers 在列標(biāo)題中搜索
您可以使用 GridView.OptionsFilter.InHeaderSearchMode 屬性在 View 的列標(biāo)題中啟用內(nèi)置搜索框。搜索框用于篩選列數(shù)據(jù)或按列搜索,具體取決于您選擇的模式。
- ‘TextFilter’ Mode ‘TextFilter’ 模式
用戶可以在搜索框中鍵入文本以篩選列。 - ‘TextSearch’ Mode “TextSearch” 模式
用戶可以在搜索框中鍵入文本來搜索列數(shù)據(jù)。網(wǎng)格將突出顯示與指定搜索字符串匹配的單元格文本。