[]
Collectionクラスの新しいインスタンスを初期化します。
この Collection を含む Firestore への参照。
Collection の名前。
このCollectionの初期化データ(プロパティ値とイベントハンドラ)を含むJavaScriptオブジェクト。
キーが計算フィールドを表し、値が式(関数または文字列)であるオブジェクトを取得または設定します。
計算フィールドにはプロキシが必要になります。 IE11で使用する場合は、 https://www.npmjs.com/package/proxy-polyfill のようなポリフィルを使用します。
計算フィールドは、外部データを扱う場合に役立ちます。 たとえば、1人当たりの収入フィールド(gnp/pop)または利益フィールド(収益-経費)を追加できます。
計算フィールドは動的です。 計算で使用されるフィールドを変更すると、それらの値は自動的に更新されます。 また、読み取り専用です。 それらの計算に使用されるプロパティの値を変更することはできますが、結果を直接編集することはできません。
FlexGrid cellTemplatesとは異なり、計算フィールドは並べ替え、フィルタリング、およびグループ化に使用できます。 また、チャートやその他のWijmoコントロールで使用することもできます。
計算フィールドは、データ項目を引数または文字列として受け取る関数として定義できます。
以下に例を示します。
// 通常のデータ項目
interface IDataItem {
product: string,
brand: string,
unitPrice: number,
qty: number,
shipped: boolean
}
function getData(): IDataItem[] {
return [
{
product: 'Banana',
brand: 'Chiquita',
unitPrice: 45.95,
qty: 12,
discount: .08,
shipped: true
}, ...
]
}
次のように関数ベースの計算フィールドを追加できます。
// 計算プロパティをIDataItemに追加します
interface ICalcDataItem extends IDataItem {
fullName: string;
allCaps: string;
totalPrice: number,
tax: number;
}
let cv = new CollectionView<ICalcDataItem>(getData(), {
calculatedFields: {
fullName: ($: ICalcDataItem) => [$.brand, $.product].join(' '),
allCaps: ($: ICalcDataItem) => $.fullName.toUpperCase(),
totalPrice: ($: ICalcDataItem) => ($.unitPrice * $.qty) * (1 - $.discount),
tax: ($: ICalcDataItem) => $.totalPrice * 0.12
}
});
関数ベースの計算フィールドは、次の理由により、通常、文字列ベースの計算フィールドよりも優れています。
1)設計時のエラーチェックとコマンド補完を提供します。 2)実行速度が速い 3)コンテンツセキュリティポリシー(CSP)に関する問題はありません。
あるいは、文字列ベースの計算フィールドを追加することもできます。
let cv = new CollectionView<IDataItem>(getData(), {
calculatedFields: {
fullName: '[$.brand, $.product].join(" ")',
allCaps: '$.fullNameStr.toUpperCase()',
totalPrice: '($.unitPrice * $.qty) * (1 - $.discount)',
tax: '$.totalPrice * 0.12'
});
文字列式は、 項目の元の値と計算された値を含む コンテキスト変数「$」により、現在の項目を参照できます。 文字列ベースの計算フィールドには、関数ベースの計算フィールドよりも利点があり、場合によっては重要になることがあります。 いくつかの利点は次のとおりです。
1)少し簡潔です 2)データとして保存でき、実行時に簡単に変更できます。
コレクションに新しい項目を追加できるかどうかを示す値を取得します。
適用前の変更を破棄して編集されたオブジェクトの元の値を復元できるかどうかを示す値を取得します。
pageIndex 値を変更できるかどうかを示す値を取得します。
このビューがgroupDescriptions プロパティによってグループ化をサポートしているかどうかを示す値を取得します。
コレクションから項目を削除できるかどうかを示す値を取得します。
このビューがsortDescriptions プロパティによってソートをサポートしているかどうかを示す値を取得します。
現在の追加トランザクションの間に追加される項目を取得します。
現在の編集トランザクションの間に編集される項目を取得します。
ビューの現在の項目を取得します。
ビューの現在の項目の順序位置を取得します。
Collectionがコミットをデータベースに戻す値を取得または設定します。
このプロパティのデフォルト値は falseです。これにより、 データへの変更はデータベースにすぐにコミットされます。
このプロパティを trueに設定すると、 自動的に trackChanges プロパティがtrueに設定されます。 この後、データへの変更(編集、追加、削除など)は追跡されますが、 commitChanges メソッドを呼び出して変更をコミットするか、 cancelChanges メソッドを呼び出して保留中の変更を破棄するまで、 データベースにコミットされません。
以下に例を示します。
import { Firestore} from '@grapecity/wijmo.cloud';
// Firestoreデータソースを作成します
let fs = new Firestore(PROJECT_ID, API_KEY, {
collections: [ 'restaurants' ]
});
let collection = fs.getCollection('restaurants');
// コミットされたコンテンツを延期します
collection.deferCommits = true;
// コミット/キャンセル変更ボタンを処理します
let btnCommit = document.getElementById('btn-commit') as HTMLButtonElement,
btnCancel = document.getElementById('btn-cancel') as HTMLButtonElement;
btnCommit.addEventListener('click', () => collection.commitChanges());
btnCancel.addEventListener('click', () => collection.cancelChanges());
collection.hasPendingChangesChanged.addHandler((s, e) => {
btnCommit.disabled = btnCancel.disabled = !collection.hasPendingChanges;
});
データベースから取得するフィールドの名前を含む配列を取得または設定します。
指定しない場合、すべてのフィールドが含まれます。
フィールド名を指定すると、アプリケーションに必要なデータのみをロードできるため、 パフォーマンスが向上し、ネットワークトラフィックが減少します。
たとえば、以下のサンプルコードは、「Customers」テーブルをロードし、5つのフィールドのみのデータを取得します。
import { Firestore, Collection } from '@grapecity/wijmo.cloud';
// store(資格情報を提供する)を取得します
const store = new Firestore(PROJECT_ID, API_KEY);
// Customers コレクションをロードします
const customers = new Collection(store, 'Customers', {
sortDescriptions: ['CustomerID'],
fields: [
'CustomerID',
'CompanyName',
'ContactName',
'City',
'Country'
],
pageSize: 6 // サーバー側のページング
});
項目がビューに含める対象として適しているかどうかを判断するために使用されるコールバックを取得または設定します。
パラメータとして渡された項目を画面に表示する必要がある場合、コールバックはtrueを返します。
このプロパティのデフォルト値はnullです。これは、データがフィルタリングされないことを意味します。
Collection クラスと FlexGridFilter クラスを使用するときにサーバー側でフィルタリングを実行する必要があるかどうかを決定する値を取得または設定します。
サーバー側のフィルタリングでは、ダウンロードする必要があるデータが少ないため、パフォーマンスの向上に役立ちます。 ただし、Firestoreのサーバー側のフィルタリングにはいくつかの制限があります。
たとえば、「OR」を除いて、「AND」を使用して複数のフィルター条件を組み合わせることができます。 つまり、国が「ブラジル」に設定されているか、 または売上高が1000を超える項目を取得する場合、クエリを作成できません。
また、等価(==)と範囲演算子(>、 >=、 <、 <=)を組み合わせる場合は、 複合インデックスを作成する必要があります。 複数のフィールドで範囲演算子を使用することはできません。 また、非等値演算子やフルテキスト検索用の演算子はありません。
これらの制限は、サーバー側のクエリにのみ適用されます。 データをダウンロードすると、クライアントで任意のフィルタリング操作を実行できます。
Firestoreデータベースのクエリの詳細については、 「https://firebase.google.com/docs/firestore/query-data/queries」を参考してください。
このプロパティのデフォルト値は false です。
このCollectionView でフィルターとして使用される{@link Ipredicate} 関数の配列を取得します。
項目の特定のプロパティに検証エラーが含まれているかどうかを判定するコールバックを取得または設定します。
メソッドは、データ項目をパラメータとして、検証されるプロパティ、およびデータが既に解析されてデータ項目に適用されているかどうか(parsing == false)またはユーザーが値を編集しようとして予期されたデータ型に解析できない値を入力したかどうかを記述する解析パラメータ(parsing == true)を受け取ります。
このメソッドは、エラーメッセージを含む文字列を返します。エラーが検出されなかった場合はnullを返します。
次に例を示します。
view = new CollectionView(data, {
getError: (item: any, prop: string, parsing: boolean) => {
// 「解析に失敗しました」メッセージを表示します。
if (parsing) {
if (prop == 'date') {
return 'Please enter a valid date in the format "MM/dd/yyyy"';
} else if (prop == 'id') {
return 'Please enter a positive number';
}
}
// 保存(解析)されたデータが有効であることを確認します。
if (prop == 'date' && item.date < minDate) {
return 'Please enter a date after ' + Globalize.formatDate(minDate, 'd');
} else if (prop == 'id' && item.id < 0) {
return 'Please enter a positive number';
}
}
});
コレクションの項目をビューでどのようにグループ化するかを記述するGroupDescription オブジェクトのコレクションを取得します。
最上位レベルのグループを表すCollectionViewGroup オブジェクトの配列を取得します。
Collectionに保留中の変更があるかどうかを決定する値を取得します。
詳細については、deferCommits プロパティ、commitChanges および cancelChanges メソッドも参照してください。
追加トランザクションが進行中であるかどうかを示す値を取得します。
編集トランザクションが進行中であるかどうかを示す値を取得します。
このビューに項目が1つも含まれていないかどうかを示す値を取得します。
Collection が現在データをロードしていることを示す 値を取得します。
このプロパティを使用して、進捗状況インジケータを提供できます。
ページインデックスが変更されているかどうかを示す値を取得します。
通知が現在中断されているかどうかを示す値を取得します(beginUpdate およびendUpdate を参照)。
ページングを適用する前のビューの既知の項目の数を取得します。
ビューの項目を取得します。
trackChanges が有効化されてから、コレクションに追加されたレコードを含むObservableArray を取得します。
trackChanges が有効化されてから、コレクションで編集されたレコードを含むObservableArray を取得します。
trackChanges が有効化されてから、コレクションから削除されたレコードを含むObservableArray を取得します。
データベースからロードする項目の最大数を取得または設定します。
このプロパティのデフォルト値はzeroです。この場合、制限が設定されません。
この Collection の名前を取得します。
コレクションの新しい項目を作成する関数を取得または設定します。
作成関数が提供されない場合、CollectionView は、適切な型の項目を 初期化せずに作成しようとします。
作成関数が提供される場合、その関数は、パラメータを受け取らず、 コレクションに対して適切な型のオブジェクトを初期化して返す 必要があります。
総ページ数を取得します。
現在のページの0から始まるインデックスを取得します。
ページングをサーバーで実行するか、クライアントで実行するかを決定する 値を取得または設定します。
ページングを有効にするには、 pageSize プロパティを使用します。
このプロパティのデフォルト値は false です。
1ページに表示する項目数を取得または設定します。
CollectionView が、アイテムの編集後に結果(ソート、フィルター、およびグループ化を適用する)を自動的に更新するかどうかを決定する値を取得または設定します。
このプロパティはデフォルトで true に設定されます。これにより、 編集が完了した後にコレクションが常に正しくソート、フィルタリング、およびグループ化されるようにします。
false に設定する場合、アイテムの編集時に更新を遅延されます。 この場合、ソート、フィルタリング、およびグループ化の基準が変更されるか、 またはExcelと同様にrefresh メソッドが呼び出されるまで、コレクションは更新されません。
ソート時に値の比較に使用する関数を取得または設定します。
指定された場合、ソート比較関数は、パラメータとして任意の型の値を 2つ取り、最初の値が2番目の値と比べて小さい、等しい、または大きい のいずれであるかを示す値-1、0、または+1を返します。ソート比較関数がnullを返す場合は、標準の組み込み比較子が使用されます。
このsortComparer プロパティを使用すると、カスタム比較アルゴリズムを 提供でき、単純な文字列比較より、ユーザーが期待する結果によく 一致するソートシーケンスが得られる場合があります。
たとえば、 Dave Koele's Alphanum algorithmを参照してください。 このアルゴリズムは、文字列を文字列や数値から成る部分に分割した後、 数値部分は値順に、文字列部分はASCII順にソートします。 Daveは、この結果を「自然なソート順」と呼んでいます。
次の例は、sortComparer プロパティの一般的な使用方法を示します。
import { CollectionView, isString } from '@grapecity/wijmo';
// カスタムソート比較子を使用してCollectionViewを作成します
const view = new CollectionView(data, {
sortComparer: (a: any, b: any) => {
return isString(a) && isString(b)
? alphanum(a, b) // 文字列に使用するカスタム比較子
: null; // 文字列以外にはデフォルトの比較子を使用します
}
});
次の例は、 Intl.Collator を使用してソート順を制御する方法を示しています。
import { CollectionView, isString } from '@grapecity/wijmo';
// Intl.Collatorを使用してソートするCollectionViewを作成します
const collator = window.Intl ? new Intl.Collator() : null;
let view = new CollectionView(data, {
sortComparer: (a, b) => {
return isString(a) && isString(b) && collator
? collator.compare(a, b) // 文字列に使用するカスタム比較子
: null; // 文字列以外にはデフォルトの比較子を使用します
}
});
ソート時の値の変換に使用される関数を取得または設定します。
指定されている場合、この関数は、SortDescription、データ項目、および変換する値をパラメーターとして受け取り、 変換後の値を返す必要があります。
このプロパティはソートの動作をカスタマイズする手段を提供します。 たとえば、 FlexGrid コントロールはこのプロパティを使用して、 マップされた列を生の値ではなく表示値を基準にソートします。
以下のサンプルコードは、国コードの整数を含む'country'プロパティをソートするときに、 対応する国名を使用してソートされるようにします。
const countries = 'US,Germany,UK,Japan,Italy,Greece'.split(',');
view.sortConverter = (sd: SortDescription, item: any, value: any) => {
return sd.property === 'countryMapped'
? countries[value]; // convert country id into name
: value;
}
次の例では、2つの値を組み合わせています。 この場合、国でソートすると、ビューが都市ごとに分割されます。
view.sortConverter: (sd: SortDescription, item: any, value: any) => {
if (sd.property == 'country') {
value = item.country + '\t' + item.city;
}
return value;
}
コレクションの項目をビューでどのようにソートするかを記述するSortDescription オブジェクトの配列を取得します。
null値のソート方法を決定する値を取得または設定します。
このプロパティはデフォルトでSortNulls.Lastに設定されます。これにより、コレクションをソートすると、並べ替えの方向に関係なくNULL値が最後に表示されます。 この動作はExcelと同じです。
ソート操作をサーバーでもクライアントでも実行する必要があるかどうかを決定する値を取得または設定します。
データのソート方法は sortDescriptions プロパティによって指定します。
このプロパティのデフォルト値は false です。
基になる(フィルタリングもソートもされていない)コレクションを取得または設定します。
このCollection を含むFirestore を取得します。
ページングを適用する前のビュー内の項目の合計数を取得します。
Firestoreはコレクション内の項目を効率的にカウントする方法を提供しないため、 このプロパティはデフォルトで大きな値に設定されます。 ユーザーが実際の数を超えるページに移動しようとすると、カーソルは最後のページに移動し、 ソルは最後のページに移動し、
コントロールがデータの変更を追跡するかどうかを決定する値を取得または設定します。
このプロパティのデフォルト値はfalseに設定されているため、
CollectionViewはどのデータ項目が変更されたかを追跡しません。 このプロパティがtrueに設定されている場合、CollectionView は、
データの変更を追跡し、itemsAdded、itemsRemoved、 itemsEdited の 各コレクションを介して変更を公開します。 変更の追跡は、変更が有効であることをユーザーが確認した後にサーバーを 更新する必要がある場合に役立ちます。
変更をコミットまたはキャンセルしたら、clearChanges メソッドを使用して、
itemsAdded、itemsRemoved、itemsEdited の各コレクションをクリアします。
CollectionView は、適切なCollectionView メソッド(editItem /commitEdit、 addNew /commitNew、remove)を使用して行われた変更だけを追跡します。
データに直接行われた変更は追跡されません。
安定したソートアルゴリズムを使用するかどうかを取得または設定します。
安定したソートアルゴリズムは、同じキーを持つレコード間の相対的な順序を維持します。 たとえば、「Amount」フィールドを持つオブジェクトのコレクションを考えてみます。 このコレクションを「Amount」でソートする場合、安定したソートでは、 Amount値が同じレコード間で元の順序が保たれます。
このプロパティのデフォルトは false です。この場合は、 高速だが安定ではないJavaScriptの組み込みソートメソッドが CollectionView で使用されます。
useStableSort をtrueに設定すると、すべてのブラウザーで安定したソートが保証されますが、ソート時間が30%~50%も長くなります。
注意:Chromeはバージョン70以降、Firefoxバージョン3以降は安定したソートを提供します。 ES2019の場合 、ソートは安定している必要があります。 ES2018までのECMAScript第1版では、不安定になることが許可されていました。
useStableSortプロパティをtrueに設定すると、すべてのブラウザー(IE11も含む)で安定したソートが保証されますが、ソートにかかる時間が30%~50%増加します。
コレクションに新しい項目を追加します。
このメソッドをパラメータなしで呼び出すと、新しい項目が作成されてコレクションに追加され、 commitNewメソッドで新しい項目がコミットされるか、 cancelNewメソッドでキャンセルされるまで、リフレッシュ操作が保留されます。
次のコードは、addNew メソッドの典型的な使用方法を示します。
// 新しい項目を作成し、それをコレクションに追加します
var newItem = view.addNew();
// 新しい項目を初期化します
newItem.id = getFreshId();
newItem.name = '新しい顧客';
// ビューをリフレッシュできるように新しい項目をコミットします
view.commitNew();
新しい項目をsourceCollection にプッシュしてから、refresh メソッドを呼び出すことで、 新しい項目を追加することもできます。addNew では、 ユーザーが追加操作をキャンセルできるため、ユーザー対話式のシナリオ(データグリッドに新しい項目の追加するなど)で特に便利です。 また、追加操作がコミットされるまで、新しい項目がソートされたり、 フィルタ処理でビューから除外されないようにします。
コレクションにcalculatedFieldsがない限り、新しい項目はデフォルトで空のオブジェクトです。 この場合、新しい項目のプロパティは、データ型に応じた値に設定されます(文字列型プロパティの場合は空の文字列、数値型プロパティの場合はゼロ、その他のデータ型の場合はnull)。
多くの場合、計算フィールドは文字列がnullでないことに依存する式に依存するため、 この動作は便利です。ただし、newItemCreatorプロパティを、 新しい項目を作成して初期化する関数に設定することで、 この動作をカスタマイズできます。
コレクションに追加する項目(オプション)。
新しい項目をすぐにコミットするかどうか。
現在の追加トランザクションを終了し、追加前の新しい項目を保存します。
次にendUpdate が呼び出されるまで更新を中断します。
サーバーにコミットせずに、itemsAdded 、itemsRemoved 、itemsEdited の各コレクションの全項目をクリアすることによってすべての変更をキャンセルします。
このメソッドは、deferCommitsプロパティと共に使用されます。
現在の編集トランザクションを終了し、可能であれば項目を元の値に戻します。
現在の追加トランザクションを終了し、追加前の新しい項目を破棄します。
itemsAdded 、itemsRemoved 、itemsEdited の各コレクションの全項目をクリアすることによってすべての変更をクリアします。
このメソッドは、変更をサーバーに確定した後またはデータをサーバーから更新した後に呼び出します。
すべての保留中の変更をサーバーにコミットします。
変更内容は、itemsEdited、itemsAdded}、およびitemsRemovedコレクションに含まれ、 正常にコミットされた後、 自動的にクリアされます。
変更内容はトランザクションでコミットされるため、操作中にエラーが発生した場合、 変更が適用されません。 Firestoreトランザクションの詳細については、[Firestoreトランザクション](https://firebase.google.com/docs/firestore/manage-data/transactions)をご参考ください。
また、deferCommitsプロパティも参照してください。
コミット操作が完了したときに呼び出されるオプションコールバック。 コールバックはXMLHttpRequestパラメーターを取り、 エラー情報がある場合はそれを含め、 リクエスト結果に関する情報が含まれます。
commitNew をオーバーライドして、データベース内の項目を変更します。
commitNew をオーバーライドして、データベースに新しい項目を追加します。
指定した項目がこのビューに属するかどうかを示す値を返します。
調べる項目。
beginUpdate/endUpdate ブロック内で関数を実行します。
この関数が終了するまでコレクションはリフレッシュされません。 deferUpdateメソッドは、update関数が例外を生成した場合でもendUpdate が呼び出されるようにします。
更新なしで実行する関数。
更新の終了時に強制的に更新するかどうか。
指定した項目の編集トランザクションを開始します。
編集する項目。
beginUpdate の呼び出しによって中断された更新を再開します。
更新の終了時に強制的に更新するかどうか。
このコレクション内の項目の集計値を計算します。
計算する集計のタイプ。
集計するプロパティ。
現在のページの項目だけを含めるかどうか。
集計値。
データ項目からサブコレクションを取得します。
Firestoreコレクションの項目には、サブコレクションが含まれる場合があります。
サブコレクションは、配列とは異なり、 データ項目(ドキュメント)が読み込まれるときに自動的に読み込まれません。 getSubCollectionメソッドを使用して明示的にロードする必要があります。
サブコレクションは同じFirestoreを使用するため、 親コレクションと同じセキュリティ資格情報を持ちます。
例えば、
import { Firestore, Collection } from '@grapecity/wijmo.cloud';
// オブジェクトを作成します。
const PROJECT_ID = 'XXXX-YYYY';
const API_KEY = 'ZZZZ';
const store = new Firestore(PROJECT_ID, API_KEY);
// トップレベルの「候補」コレクションをロードします。
const suggestions = new Collection(store, 'suggestions', {
loaded: s => {
console.log(`loaded ${s.items.length} suggestions.`);
// 最初の候補の「コメント」サブコレクションをロードします。
let comments = new SubCollection(store, s.items[0], 'comments', {
loaded: s => {
console.log(`first suggestion has ${s.items.length} comments.`);
}
});
}
});
サブコレクションを含むデータ項目。
サブコレクションの名前。
サブコレクション 初期化データ(プロパティ値とイベントハンドラ)を含むJavaScriptオブジェクト。
サブコレクションを含むCollectionオブジェクト。
このオブジェクトが指定したインタフェースをサポートしている場合、trueを返します。
調べるインタフェースの名前。
コレクションのデータをロードまたは再ロードします。
カーソル位置を維持したままにするかどうか。
指定した項目をビューの現在の項目に設定します。
現在の項目として設定する項目。
ビューの最初の項目を現在の項目として設定します。
ビューの最後の項目を現在の項目として設定します。
ビューの現在の項目の後の項目を現在の項目として設定します。
ビューの指定したインデックスにある項目を現在の項目として設定します。
現在の項目として設定する項目のインデックス。
ビューの現在の項目の前の項目を現在の項目として設定します。
最初のページを現在のページとして設定します。
ページのインデックスが正常に変更された場合はTrue。
最後のページを現在のページとして設定します。
ページのインデックスが正常に変更された場合はTrue。
現在のページの後のページに移動します。
ページのインデックスが正常に変更された場合はTrue。
指定したインデックスにあるページに移動します。
移動先ページのインデックス。
ページのインデックスが正常に変更された場合はTrue。
現在のページの前のページに移動します。
ページのインデックスが正常に変更された場合はTrue。
collectionChanged イベントを発生させます。
変更の記述が含まれます。
currentChanged イベントを発生させます。
currentChanging イベントを発生させます。
イベントデータを含むCancelEventArgs 。
error イベントを発生させます。
error イベントを発生させます。 デフォルトでは、エラーによって例外が生成され、データのリフレッシュがトリガされます。 この動作を回避するには、イベントハンドラでRequestErrorEventArgs.cancel パラメータをtrueに設定します。
エラーに関する情報を含むRequestErrorEventArgs 。
hasPendingChangesChanged イベントを発生させます。
loading イベントを発生させます。
pageChanged イベントを発生させます。
pageChanging イベントを発生させます。
イベントデータを含むPageChangingEventArgs 。
sourceCollectionChanged イベントを発生させます。
sourceCollectionChanging イベントを発生させます。
イベントデータを含むCancelEventArgs 。
サーバーでソートの基準となるフィールドを指定します。
orderBy メソッドを数回呼び出すことで、複数のフィールドでソートを行えます。
orderBy 演算子で作成されたソートは、 sortOnServer プロパティの設定に関係なく、常にサーバーに適用されます。
並べ替えの基準となるフィールドの名前、またはすべての並べ替えをクリアする場合はnull。
フィールドを昇順でソートするか降順でソートするか。
現在のソート、フィルタ、およびグループパラメーターを使用してビューを再作成します。
commitNew をオーバーライドして、データベースから項目を削除します。
データベースから削除する項目。
指定したインデックスにある項目をコレクションから削除します。
コレクションから削除する項目のインデックス。このインデックスは、ソースコレクションに対してではなくビューに対する相対インデックスです。
取得するフィールドの名前を含む配列。
FlexGridFilter などの既知のフィルタプロバイダに基づいてフィルタ定義を更新します。
既知のフィルタプロバイダ。通常はFlexGridFilter のインスタンス。
サーバーに適用するフィルタを指定します。
複合フィルタを作成するには、where メソッドを数回呼び出すことができます。
where 演算子を使用して作成されたフィルタは、 filterOnServer プロパティの設定に関係なく、常にサーバーに適用されます。
フィルタするフィールド、またはすべてのフィルタをクリアする場合はnull。
フィルター演算子 (>、 >=、 ==、 <、 <=、 または IN)
フィルタリングに使用する値。
コレクションが変更されたときに発生します。
現在の項目が変更された後に発生します。
現在の項目が変更される前に発生します。
データの読み込みまたは書き込みエラーがあるときに発生します。
hasPendingChanges プロパティの値が変更されたときに発生します。
deferCommitsプロパティも参考してください。
Collection がデータのロードを完了したときに発生します。
Collection がデータのロードを開始するときに発生します。
ページインデックスが変更された後に発生します。
ページインデックスが変更される前に発生します。
sourceCollection プロパティの値が変化した後に発生します。
sourceCollection プロパティの値が変化する前に発生します。
Firestore オブジェクトのドキュメントコレクションへのアクセスを提供するには、CollectionView クラスを拡張します。
Collection オブジェクトは、 Firestore オブジェクトを作成するときに {@link collecions} プロパティを設定するか、 the Collection コンストラクターを直接呼び出すことによって作成できます。たとえば:
import { Firestore, Collection } from '@grapecity/wijmo.cloud'; // 3つのコレクションを含むFirestoreを作成します const PROJECT_ID = 'XXXX-YYYY'; const API_KEY = 'ZZZZ'; let fsNWind = new Firestore(PROJECT_ID, API_KEY, { collections: [ 'Products', 'Categories', 'Suppliers' ] }); // コンストラクターを呼び出して追加のコレクションを作成します let customers = new Collection(fsNWind, 'Customers');
ほとんどのアプリケーションでは、 Collection オブジェクトは、 FlexGridや MultiRow などのグリッドコントロールのデータソースとして使用されます。 たとえば:
import { FireStore, Collection } from '@grapecity/wijmo.cloud'; import { FlexGrid } from '@grapecity/wijmo.cloud'; // 3つのコレクションを含むFirestoreを作成します const PROJECT_ID = 'XXXX-YYYY'; const API_KEY = 'ZZZZ'; let fsNWind = new Firestore(PROJECT_ID, API_KEY, { collections: [ 'Products', 'Categories', 'Suppliers' ] }); // コレクションをFlexGridコントロールのitemsSourceとして使用します let theGrid = new FlexGrid('#theGrid', { allowAddNew: true, allowDelete: true, itemsSource: fsNWind.getCollection('Products'), });
このクラスは、Firestore クライアントライブラリの使用を使用しません。