文章分類/

Infragistics|Ultimate UI for WPF|如何使用 XamDataGrid C# 程式碼進行篩選 – 當您只想保留那些與特定列中的多個條件之一相符的內容時

336 瀏覽人次
2023-12-02 更新

infragistics log

如果要在 XamDataGrid 中的程式碼中進行篩選,並且只想保留那些與特定列中的多個條件之一相符的內容,請使用跨欄位記錄篩選功能。 

例如,如果您想將「部門」列中的值保留為「人力資源」或「管理」並過濾其他值,

1. 在 XamDataGrid 的 FieldSettings 中將 AllowCrossFieldRecordFiltering 設定為 True 以啟用跨欄位記錄篩選功能。

2. 為 FieldLayout 配置 CrossFieldRecordFilters。

  1. 建立 CrossFieldRecordFilterGroup 並將此處新增的每個過濾條件設定為使用 OR 進行評估。
  2. 建立一個過濾條件,其中“部門”列的值等於“人力資源”,並將其新增至 CrossFieldRecordFilterGroup。
  3. 建立一個過濾條件,其中“department”列的值等於“Administration”,並將其新增至 CrossFieldRecordFilterGroup。
  4. 在 Fieldlayout 中將 CrossFieldRecordFilterGroup 設定為 CrossFieldRecordFilters。 
<igDP:XamDataGrid ...>
    <igDP:XamDataGrid.FieldSettings>
        <igDP:FieldSettings AllowCrossFieldRecordFiltering="True" />
    </igDP:XamDataGrid.FieldSettings>
    ...
</igDP:XamDataGrid>
// CrossFieldRecordFilterGroupのインスタンスを作成する。
// この中に入る各フィルター条件を"OR"で評価する設定をする。
CrossFieldRecordFilterGroup filterGroup = new CrossFieldRecordFilterGroup();
filterGroup.LogicalOperator = Infragistics.Windows.Controls.LogicalOperator.Or;

// "department"列の値が"人事"と等しいものというフィルター条件を作成し、CrossFieldRecordFilterGroupに追加する。
CrossFieldRecordFilter filter1 = new CrossFieldRecordFilter()
{
    FieldName = "department",
    Operator = Infragistics.Windows.Controls.ComparisonOperator.Equals,
    Operand = "人事"
};
filterGroup.Filters.Add(filter1);

// 同様に、"事務"と等しいものというフィルター条件を作成し、CrossFieldRecordFilterGroupに追加する。
CrossFieldRecordFilter filter2 = new CrossFieldRecordFilter()
{
    FieldName = "department",
    Operator = Infragistics.Windows.Controls.ComparisonOperator.Equals,
    Operand = "事務"
};
filterGroup.Filters.Add(filter2);

// CrossFieldRecordFilterGroupをFieldlayoutのCrossFieldRecordFiltersとして設定する。
fieldLayout1.CrossFieldRecordFilters = filterGroup;

執行結果

快速跳轉目錄

✦ 群昱 AccessSoft 你的全面軟體解決方案 ✦

身為全球眾多知名軟體在台灣合作夥伴,歡迎諮詢你需要的軟體服務!

Picture of 軟體專家
軟體專家

群昱作為全球知名軟體推薦合作夥伴,致力於提供更多軟體解決方案給你!

更多軟體新知

立即詢價

請留下完整資訊,以便我們提供精確的服務內容給你。

詢價資訊