Blazor Tree Grid フィルタリング
Blazor Tree Grid の Ignite UI for Blazor フィルタリングは、特定の基準または条件に基づいてデータを選択的に表示または非表示にする機能です。IgbTreeGrid
コンポーネントが豊富なフィルタリング API とすべてのフィルタリング機能を提供するバインドされたデータ コンテナがあります。ここで利用可能なフィルタリング タイプは次の 3 つです。
すぐに使用できる機能のフルセット は、ページング、ソート、フィルタリング、編集、グループ化から行と列の仮想化まで、あらゆる機能をカバーします。.NET 開発者には制限はありません。
Blazor Tree Grid フィルタリングの例
以下のサンプルは、IgbTreeGrid
の Excel スタイル フィルタリング ユーザー エクスペリエンスを示しています。
EXAMPLE
MODULES
DATA
RAZOR
CSS
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls;
namespace Infragistics.Samples
{
public class Program
{
public static async Task Main (string [] args )
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app" );
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
builder.Services.AddIgniteUIBlazor(
typeof (IgbTreeGridModule)
);
await builder.Build().RunAsync();
}
}
}
cs コピー using System;
using System.Collections.Generic;
public class OrdersDataItem
{
public double ID { get ; set ; }
public double ParentID { get ; set ; }
public string Name { get ; set ; }
public string Category { get ; set ; }
public string OrderDate { get ; set ; }
public double Units { get ; set ; }
public double UnitPrice { get ; set ; }
public double Price { get ; set ; }
public bool Delivered { get ; set ; }
}
public class OrdersData
: List <OrdersDataItem >
{
public OrdersData ( )
{
this .Add(new OrdersDataItem()
{
ID = 1 ,
ParentID = -1 ,
Name = @"Order 1" ,
Category = @"" ,
OrderDate = @"2010-02-17" ,
Units = 1844 ,
UnitPrice = 3.73 ,
Price = 6884.38 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 101 ,
ParentID = 1 ,
Name = @"Chocolate Chip Cookies" ,
Category = @"Cookies" ,
OrderDate = @"2010-02-17" ,
Units = 834 ,
UnitPrice = 3.59 ,
Price = 2994.06 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 102 ,
ParentID = 1 ,
Name = @"Red Apples" ,
Category = @"Fruit" ,
OrderDate = @"2010-02-17" ,
Units = 371 ,
UnitPrice = 3.66 ,
Price = 1357.86 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 103 ,
ParentID = 1 ,
Name = @"Butter" ,
Category = @"Diary" ,
OrderDate = @"2010-02-17" ,
Units = 260 ,
UnitPrice = 3.45 ,
Price = 897 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 104 ,
ParentID = 1 ,
Name = @"Potato Chips" ,
Category = @"Snack" ,
OrderDate = @"2010-02-17" ,
Units = 118 ,
UnitPrice = 1.96 ,
Price = 231.28 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 105 ,
ParentID = 1 ,
Name = @"Orange Juice" ,
Category = @"Beverages" ,
OrderDate = @"2010-02-17" ,
Units = 261 ,
UnitPrice = 5.38 ,
Price = 1404.18 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 2 ,
ParentID = -1 ,
Name = @"Order 2" ,
Category = @"" ,
OrderDate = @"2022-05-27" ,
Units = 1831 ,
UnitPrice = 8.23 ,
Price = 15062.77 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 201 ,
ParentID = 2 ,
Name = @"Frozen Shrimps" ,
Category = @"Seafood" ,
OrderDate = @"2022-05-27" ,
Units = 120 ,
UnitPrice = 20.45 ,
Price = 2454 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 202 ,
ParentID = 2 ,
Name = @"Ice Tea" ,
Category = @"Beverages" ,
OrderDate = @"2022-05-27" ,
Units = 840 ,
UnitPrice = 7 ,
Price = 5880 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 203 ,
ParentID = 2 ,
Name = @"Fresh Cheese" ,
Category = @"Diary" ,
OrderDate = @"2022-05-27" ,
Units = 267 ,
UnitPrice = 16.55 ,
Price = 4418.85 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 204 ,
ParentID = 2 ,
Name = @"Carrots" ,
Category = @"Vegetables" ,
OrderDate = @"2022-05-27" ,
Units = 360 ,
UnitPrice = 2.77 ,
Price = 997.2 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 205 ,
ParentID = 2 ,
Name = @"Apple Juice" ,
Category = @"Beverages" ,
OrderDate = @"2022-05-27" ,
Units = 244 ,
UnitPrice = 5.38 ,
Price = 1312.72 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 3 ,
ParentID = -1 ,
Name = @"Order 3" ,
Category = @"" ,
OrderDate = @"2022-08-04" ,
Units = 1972 ,
UnitPrice = 3.47 ,
Price = 6849.18 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 301 ,
ParentID = 3 ,
Name = @"Skimmed Milk 1L" ,
Category = @"Diary" ,
OrderDate = @"2022-08-04" ,
Units = 1028 ,
UnitPrice = 3.56 ,
Price = 3659.68 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 302 ,
ParentID = 3 ,
Name = @"Bananas 5 Pack" ,
Category = @"Fruit" ,
OrderDate = @"2022-08-04" ,
Units = 370 ,
UnitPrice = 6.36 ,
Price = 2353.2 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 303 ,
ParentID = 3 ,
Name = @"Cauliflower" ,
Category = @"Vegetables" ,
OrderDate = @"2022-08-04" ,
Units = 283 ,
UnitPrice = 0.95 ,
Price = 268.85 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 304 ,
ParentID = 3 ,
Name = @"White Chocolate Cookies" ,
Category = @"Cookies" ,
OrderDate = @"2022-08-04" ,
Units = 291 ,
UnitPrice = 1.95 ,
Price = 567.45 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 4 ,
ParentID = -1 ,
Name = @"Order 4" ,
Category = @"" ,
OrderDate = @"2023-01-04" ,
Units = 1065 ,
UnitPrice = 5.56 ,
Price = 5923.5 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 401 ,
ParentID = 4 ,
Name = @"Mini Milk Chocolate Cookie Bites" ,
Category = @"Cookies" ,
OrderDate = @"2023-01-04" ,
Units = 68 ,
UnitPrice = 2.25 ,
Price = 153 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 402 ,
ParentID = 4 ,
Name = @"Wild Salmon Fillets" ,
Category = @"Seafood" ,
OrderDate = @"2023-01-04" ,
Units = 320 ,
UnitPrice = 16.15 ,
Price = 5168 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 403 ,
ParentID = 4 ,
Name = @"Diet Lemonade" ,
Category = @"Beverages" ,
OrderDate = @"2023-01-04" ,
Units = 437 ,
UnitPrice = 0.5 ,
Price = 218.5 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 404 ,
ParentID = 4 ,
Name = @"Potatoes" ,
Category = @"Vegetables" ,
OrderDate = @"2023-01-04" ,
Units = 240 ,
UnitPrice = 1.6 ,
Price = 384 ,
Delivered = true
});
}
}
cs コピー
@using IgniteUI.Blazor.Controls
<div class ="container vertical ig-typography" >
<div class ="container vertical fill" >
<IgbTreeGrid
AutoGenerate ="false"
Name ="treeGrid"
@ref ="treeGrid"
Id ="treeGrid"
Data ="OrdersData"
FilterMode ="FilterMode.QuickFilter"
PrimaryKey ="ID"
ForeignKey ="ParentID"
AllowFiltering ="true" >
<IgbColumn
Field ="ID"
Header ="Order ID"
DataType ="GridColumnDataType.Number" >
</IgbColumn >
<IgbColumn
Field ="Name"
Header ="Order Product"
DataType ="GridColumnDataType.String" >
</IgbColumn >
<IgbColumn
Field ="Category"
DataType ="GridColumnDataType.String" >
</IgbColumn >
<IgbColumn
Field ="Units"
DataType ="GridColumnDataType.Number" >
</IgbColumn >
<IgbColumn
Field ="Age"
DataType ="GridColumnDataType.Number"
Sortable ="true"
Hidden ="true" >
</IgbColumn >
<IgbColumn
Field ="UnitPrice"
Header ="Unit Price"
DataType ="GridColumnDataType.Currency" >
</IgbColumn >
<IgbColumn
Field ="Price"
DataType ="GridColumnDataType.Currency" >
</IgbColumn >
<IgbColumn
Field ="Country"
DataType ="GridColumnDataType.String"
Sortable ="true" >
</IgbColumn >
<IgbColumn
Field ="OrderDate"
Header ="Order Date"
DataType ="GridColumnDataType.Date" >
</IgbColumn >
<IgbColumn
Field ="Delivered"
DataType ="GridColumnDataType.Boolean" >
</IgbColumn >
</IgbTreeGrid >
</div >
</div >
@code {
protected override async Task OnAfterRenderAsync (bool firstRender )
{
var treeGrid = this .treeGrid;
}
private IgbTreeGrid treeGrid;
private OrdersData _ordersData = null ;
public OrdersData OrdersData
{
get
{
if (_ordersData == null )
{
_ordersData = new OrdersData();
}
return _ordersData;
}
}
}
razor コピー
このサンプルが気に入りましたか? 完全な Ignite UI for Blazorツールキットにアクセスして、すばやく独自のアプリの作成を開始します。無料でダウンロードできます。
設定
フィルタリングが有効かどうか、およびどのフィルタリング モードを使用するかを指定するために、TreeGrid は次のブール プロパティを公開します - AllowFiltering
、AllowAdvancedFiltering
、FilterMode
と Filterable
。
以下のオプションは、プロパティ AllowFiltering
で指定できます。
false - 対応するグリッドのフィルタリングが無効になります。これがデフォルト値です。
true - 対応するグリッドのフィルタリングが有効になります。
以下のオプションは、プロパティ AllowAdvancedFiltering
で指定できます。
false - 対応するグリッドの高度なフィルタリングが無効になります。これがデフォルト値です。
true - 対応するグリッドの高度なフィルタリングが有効になります。
以下のオプションは、プロパティ FilterMode
で指定できます。
QuickFilter - 簡易なフィルタリング UI。これがデフォルト値です。
ExcelStyleFilter - Excel のようなフィルタリング UI。
以下のオプションは、プロパティ Filterable
で指定できます。
true - 対応する列のフィルタリングが有効になります。これがデフォルト値です。
false - 対応する列のフィルタリングが無効になります。
<IgbTreeGrid Data =data AutoGenerate =false AllowFiltering =true >
<IgbColumn Field ="ProductName" DataType ="GridColumnDataType.String" > </IgbColumn >
<IgbColumn Field ="Price" DataType ="GridColumnDataType.Number" Filterable =false > </IgbColumn >
</IgbTreeGrid >
razor
高度なフィルタリング を有効にするには、AllowAdvancedFiltering
入力プロパティを true に設定します。
<IgbTreeGrid Data =data AutoGenerate =true AllowAdvancedFiltering =true />
razor
IgbTreeGrid で QuickFilter または ExcelStyleFilter と高度なフィルタリング ユーザー インターフェイスの両方を有効にできます。両フィルタリング ユーザー インターフェイスは、互いに依存せずに機能します。IgbTreeGrid の最終的なフィルター結果は、2 つのフィルター結果の共通部分です。
インタラクション
特定の列のフィルター行を開くには、ヘッダー下のフィルター チップをクリックします。状態を追加するために入力の左側のドロップダウンを使用してフィルター オペランドを選択し、値を入力します。number と date 列には、Equals がデフォルトで選択されます。string には 'Contains'、boolean には 'All' が選択されます。'Enter' を押して条件を確定して他の条件を追加できます。条件チップの間にドロップダウンがあり、それらの間の論理演算子を決定します。'AND' がデフォルトで選択されます。条件の削除はチップの X ボタンをクリックします。編集はチップを選択、入力はチップのデータで生成されます。フィルター行が開いているときにフィルター可能な列のヘッダーをクリックして選択し、フィルター条件を追加できます。
列に適用したフィルターがある場合、フィルター行が閉じられるとチップの閉じるボタンをクリックした条件の削除やいずれかのチップを選択してフィルター行を開くことができます。すべての条件を表示するための十分なスペースがない場合、条件数を示すバッジ付きのフィルター アイコンが表示されます。フィルター行を開くためにクリックできます。
使用方法
デフォルトの定義済みフィルタリングおよび標準のフィルタリング条件があり、カスタム実装で置き換えることも可能です。また、カスタム フィルタリング条件を追加することもできます。IgbTreeGrid
には、簡易なフィルター UI と詳細なフィルター オプションがあります。列で設定された DataType
に基づいて、適切なフィルタリング処理 のセットがフィルター UI ドロップダウンに読み込まれます。また、IgnoreCase
と最初の Condition
プロパティを設定できます。
フィルタリング機能は、AllowFiltering
入力を true に設定すると IgbTreeGrid
コンポーネントで有効になります。デフォルトの FilterMode
は QuickFilter
でランタイムでは変更できません 。特定の列でこの機能を無効にするには、Filterable
入力を false に設定します。
<IgbTreeGrid Data =data AutoGenerate =false AllowFiltering =true >
<IgbColumn Field ="ProductName" DataType ="GridColumnDataType.String" > </IgbColumn >
<IgbColumn Field ="Price" DataType ="GridColumnDataType.Number" Filterable =false > </IgbColumn >
</IgbTreeGrid >
razor
string 型の値が date データ型の列で使用される場合、IgbTreeGrid は値を date オブジェクトに解析しないためフィルター条件は使用できません。string オブジェクトを使用する場合、値を date オブジェクトに解析するためのロジックをアプリケーション レベルで実装する必要があります。
初期のフィルター状態
IgbTreeGrid
の初期フィルタリング状態の設定は、IgbTreeGrid
FilteringExpressionsTree
プロパティを FilteringExpressionsTree
の配列に設定して各列をフィルターします。
<IgbTreeGrid
FilteringExpressionsTree ="filteringExpressions"
AllowFiltering ="true"
FilterMode ="FilterMode.QuickFilter" >
</IgbTreeGrid >
@code {
protected override async Task OnInitializedAsync ( )
{
IgbFilteringExpressionsTree gridFilteringExpressionsTree = new IgbFilteringExpressionsTree() { Operator = FilteringLogic.And };
IgbFilteringExpression categoryFilteringExpressionsTree = new IgbFilteringExpression()
{
FieldName = "Category" ,
ConditionName = "contains" ,
IgnoreCase = true ,
SearchVal = "Metals"
};
IgbFilteringExpression typeFilteringExpressionsTree = new IgbFilteringExpression()
{
FieldName = "Type" ,
ConditionName = "contains" ,
IgnoreCase = true ,
SearchVal = "e"
};
gridFilteringExpressionsTree.FilteringOperands = new IgbFilteringExpression[2 ] { categoryFilteringExpressionsTree, typeFilteringExpressionsTree };
filteringExpressions = gridFilteringExpressionsTree;
}
public IgbFilteringExpressionsTree filteringExpressions;
}
razor
フィルター ロジック
IgbTreeGrid
コントロールの FilteringLogic
プロパティは IgbTreeGrid
で複数の列のフィルターが解決する方法を制御します。IgbTreeGrid
API または IgbTreeGrid
の入力プロパティによって変更できます。
<IgbTreeGrid FilteringLogic ="FilteringLogic.Or" > </IgbTreeGrid >
razor
AND
のデフォルト値は現在適用されているすべてのフィルター式と一致する行のみを返します。上記の例は、「ProductName」 セル値が 「myproduct」 を含み、「Price」 セル値が 55 より大きい場合に行が返されます。
OR
に設定される場合、「ProductName」 セル値が 「myproduct」 を含むか、「Price」 セル値が 55 より大きい場合に行が返されます。
スタイル設定
定義済みのテーマに加えて、利用可能な CSS プロパティ のいくつかを設定することで、グリッドをさらにカスタマイズできます。
一部の色を変更したい場合は、最初にグリッドのクラスを設定する必要があります。
<IgbTreeGrid Class ="grid" > </IgbTreeGrid >
razor
次に、そのクラスに関連する CSS プロパティを設定します。
.grid {
--ig-grid-filtering-row-text-color : #292826 ;
--ig-grid-filtering-row-background : #ffcd0f ;
--ig-grid-filtering-header -text-color : #292826 ;
--ig-grid-filtering-header -background : #ffcd0f ;
}
css
デモ
EXAMPLE
MODULES
DATA
RAZOR
CSS
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls;
namespace Infragistics.Samples
{
public class Program
{
public static async Task Main (string [] args )
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app" );
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
builder.Services.AddIgniteUIBlazor(
typeof (IgbTreeGridModule)
);
await builder.Build().RunAsync();
}
}
}
cs コピー using System;
using System.Collections.Generic;
public class OrdersDataItem
{
public double ID { get ; set ; }
public double ParentID { get ; set ; }
public string Name { get ; set ; }
public string Category { get ; set ; }
public string OrderDate { get ; set ; }
public double Units { get ; set ; }
public double UnitPrice { get ; set ; }
public double Price { get ; set ; }
public bool Delivered { get ; set ; }
}
public class OrdersData
: List <OrdersDataItem >
{
public OrdersData ( )
{
this .Add(new OrdersDataItem()
{
ID = 1 ,
ParentID = -1 ,
Name = @"Order 1" ,
Category = @"" ,
OrderDate = @"2010-02-17" ,
Units = 1844 ,
UnitPrice = 3.73 ,
Price = 6884.38 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 101 ,
ParentID = 1 ,
Name = @"Chocolate Chip Cookies" ,
Category = @"Cookies" ,
OrderDate = @"2010-02-17" ,
Units = 834 ,
UnitPrice = 3.59 ,
Price = 2994.06 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 102 ,
ParentID = 1 ,
Name = @"Red Apples" ,
Category = @"Fruit" ,
OrderDate = @"2010-02-17" ,
Units = 371 ,
UnitPrice = 3.66 ,
Price = 1357.86 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 103 ,
ParentID = 1 ,
Name = @"Butter" ,
Category = @"Diary" ,
OrderDate = @"2010-02-17" ,
Units = 260 ,
UnitPrice = 3.45 ,
Price = 897 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 104 ,
ParentID = 1 ,
Name = @"Potato Chips" ,
Category = @"Snack" ,
OrderDate = @"2010-02-17" ,
Units = 118 ,
UnitPrice = 1.96 ,
Price = 231.28 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 105 ,
ParentID = 1 ,
Name = @"Orange Juice" ,
Category = @"Beverages" ,
OrderDate = @"2010-02-17" ,
Units = 261 ,
UnitPrice = 5.38 ,
Price = 1404.18 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 2 ,
ParentID = -1 ,
Name = @"Order 2" ,
Category = @"" ,
OrderDate = @"2022-05-27" ,
Units = 1831 ,
UnitPrice = 8.23 ,
Price = 15062.77 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 201 ,
ParentID = 2 ,
Name = @"Frozen Shrimps" ,
Category = @"Seafood" ,
OrderDate = @"2022-05-27" ,
Units = 120 ,
UnitPrice = 20.45 ,
Price = 2454 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 202 ,
ParentID = 2 ,
Name = @"Ice Tea" ,
Category = @"Beverages" ,
OrderDate = @"2022-05-27" ,
Units = 840 ,
UnitPrice = 7 ,
Price = 5880 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 203 ,
ParentID = 2 ,
Name = @"Fresh Cheese" ,
Category = @"Diary" ,
OrderDate = @"2022-05-27" ,
Units = 267 ,
UnitPrice = 16.55 ,
Price = 4418.85 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 204 ,
ParentID = 2 ,
Name = @"Carrots" ,
Category = @"Vegetables" ,
OrderDate = @"2022-05-27" ,
Units = 360 ,
UnitPrice = 2.77 ,
Price = 997.2 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 205 ,
ParentID = 2 ,
Name = @"Apple Juice" ,
Category = @"Beverages" ,
OrderDate = @"2022-05-27" ,
Units = 244 ,
UnitPrice = 5.38 ,
Price = 1312.72 ,
Delivered = false
});
this .Add(new OrdersDataItem()
{
ID = 3 ,
ParentID = -1 ,
Name = @"Order 3" ,
Category = @"" ,
OrderDate = @"2022-08-04" ,
Units = 1972 ,
UnitPrice = 3.47 ,
Price = 6849.18 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 301 ,
ParentID = 3 ,
Name = @"Skimmed Milk 1L" ,
Category = @"Diary" ,
OrderDate = @"2022-08-04" ,
Units = 1028 ,
UnitPrice = 3.56 ,
Price = 3659.68 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 302 ,
ParentID = 3 ,
Name = @"Bananas 5 Pack" ,
Category = @"Fruit" ,
OrderDate = @"2022-08-04" ,
Units = 370 ,
UnitPrice = 6.36 ,
Price = 2353.2 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 303 ,
ParentID = 3 ,
Name = @"Cauliflower" ,
Category = @"Vegetables" ,
OrderDate = @"2022-08-04" ,
Units = 283 ,
UnitPrice = 0.95 ,
Price = 268.85 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 304 ,
ParentID = 3 ,
Name = @"White Chocolate Cookies" ,
Category = @"Cookies" ,
OrderDate = @"2022-08-04" ,
Units = 291 ,
UnitPrice = 1.95 ,
Price = 567.45 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 4 ,
ParentID = -1 ,
Name = @"Order 4" ,
Category = @"" ,
OrderDate = @"2023-01-04" ,
Units = 1065 ,
UnitPrice = 5.56 ,
Price = 5923.5 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 401 ,
ParentID = 4 ,
Name = @"Mini Milk Chocolate Cookie Bites" ,
Category = @"Cookies" ,
OrderDate = @"2023-01-04" ,
Units = 68 ,
UnitPrice = 2.25 ,
Price = 153 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 402 ,
ParentID = 4 ,
Name = @"Wild Salmon Fillets" ,
Category = @"Seafood" ,
OrderDate = @"2023-01-04" ,
Units = 320 ,
UnitPrice = 16.15 ,
Price = 5168 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 403 ,
ParentID = 4 ,
Name = @"Diet Lemonade" ,
Category = @"Beverages" ,
OrderDate = @"2023-01-04" ,
Units = 437 ,
UnitPrice = 0.5 ,
Price = 218.5 ,
Delivered = true
});
this .Add(new OrdersDataItem()
{
ID = 404 ,
ParentID = 4 ,
Name = @"Potatoes" ,
Category = @"Vegetables" ,
OrderDate = @"2023-01-04" ,
Units = 240 ,
UnitPrice = 1.6 ,
Price = 384 ,
Delivered = true
});
}
}
cs コピー
@using IgniteUI.Blazor.Controls
<style >
#treeGrid {
--ig-grid-filtering-row-text-color : #292826 ;
--ig-grid-filtering-row-background : #ffcd0f ;
--ig-grid-filtering-header -text-color : #292826 ;
--ig-grid-filtering-header -background : #ffcd0f ;
}
</style >
<div class ="container vertical ig-typography" >
<div class ="container vertical fill" >
<IgbTreeGrid
AutoGenerate ="false"
Name ="treeGrid"
@ref ="treeGrid"
Id ="treeGrid"
Data ="OrdersData"
FilterMode ="FilterMode.QuickFilter"
PrimaryKey ="ID"
ForeignKey ="ParentID"
AllowFiltering ="true" >
<IgbColumn
Field ="ID"
Header ="Order ID"
DataType ="GridColumnDataType.Number" >
</IgbColumn >
<IgbColumn
Field ="Name"
Header ="Order Product"
DataType ="GridColumnDataType.String" >
</IgbColumn >
<IgbColumn
Field ="Category"
DataType ="GridColumnDataType.String" >
</IgbColumn >
<IgbColumn
Field ="Units"
DataType ="GridColumnDataType.Number" >
</IgbColumn >
<IgbColumn
Field ="Age"
DataType ="GridColumnDataType.Number"
Sortable ="true"
Hidden ="true" >
</IgbColumn >
<IgbColumn
Field ="UnitPrice"
Header ="Unit Price"
DataType ="GridColumnDataType.Currency" >
</IgbColumn >
<IgbColumn
Field ="Price"
DataType ="GridColumnDataType.Currency" >
</IgbColumn >
<IgbColumn
Field ="Country"
DataType ="GridColumnDataType.String"
Sortable ="true" >
</IgbColumn >
<IgbColumn
Field ="OrderDate"
Header ="Order Date"
DataType ="GridColumnDataType.Date" >
</IgbColumn >
<IgbColumn
Field ="Delivered"
DataType ="GridColumnDataType.Boolean" >
</IgbColumn >
</IgbTreeGrid >
</div >
</div >
@code {
protected override async Task OnAfterRenderAsync (bool firstRender )
{
var treeGrid = this .treeGrid;
}
private IgbTreeGrid treeGrid;
private OrdersData _ordersData = null ;
public OrdersData OrdersData
{
get
{
if (_ordersData == null )
{
_ordersData = new OrdersData();
}
return _ordersData;
}
}
}
razor コピー
#treeGrid {
--ig-grid-filtering-row-text-color : #292826 ;
--ig-grid-filtering-row-background : #ffcd0f ;
--ig-grid-filtering-header -text-color : #292826 ;
--ig-grid-filtering-header -background : #ffcd0f ;
}
css コピー
既知の問題と制限
Firefox などの一部のブラウザーは、地域固有の小数点区切り文字をグループ化区切りと見なすため解析できず、無効になります。数値列フィルター値にそのような値を入力すると、数値の有効な部分のみがフィルター式に適用されます。詳細については、Firefox 問題を参照してください。
API リファレンス
その他のリソース
コミュニティに参加して新しいアイデアをご提案ください。