[]
ODataCollectionView クラスの新しいインスタンスを初期化します。
ODataサービスのURL(例: 'http://services.odata.org/Northwind/Northwind.svc')。
サービスから取得するテーブル(エンティティ)の名前。指定されない場合は、有効なテーブル(エンティティ)のリストが取得されます。
ODataCollectionView の初期化データ(プロパティ値とイベントハンドラ)を含むJavaScriptオブジェクト。
データのロード中にデータ型を変換するためのマップとして使用されるJavaScriptオブジェクトを取得または設定します。
オブジェクトのキーはフィールド名を表し、値はそのデータをどのように型変換するかを示すDataType 値を表します。以下のサンプルコードは、 ODataCollectionView を作成した後、(データベースに文字列として格納されている)'Freight'の値を数値に変換し、さらに3つの日付フィールドを日付に変換します。
import { ODataCollectionView } from '@grapecity/wijmo.odata';
var orders = new ODataCollectionView(url, 'Orders', {
dataTypes: {
Freight: wijmo.DataType.Number
OrderDate: wijmo.DataType.Date,
RequiredDate: wijmo.DataType.Date,
ShippedDate: wijmo.DataType.Date,
}
});
このプロパティは、データベースに格納されているデータの書式が一般的な用法に適合していない場合に役立ちます。 inferDataTypes プロパティによってDate値の変換が自動的に処理されるため、ほとんどの場合、データ型に関する情報を提供する必要はありません。 明示的に型情報を提供した場合、inferDataTypes プロパティは適用されません。 そのため、データ型の情報を提供する場合は、Date型のフィールドも含め、 すべてのフィールドの型情報を提供する必要があります。
関連エンティティを返すデータに含めるかどうかを指定する文字列を取得または設定します。
このプロパティは直接ODataの$expandオプションにマップされます。
たとえば、次のコードは、すべての顧客とその注文をデータベースから取得します。 各顧客エンティティには、注文オブジェクトの配列を含む[Orders]フィールドが含まれています。
var url = 'http://services.odata.org/Northwind/Northwind.svc'; var customersOrders = new wijmo.odata.ODataCollectionView(url, 'Customers', { expand: 'Orders' });
データソースから取得するフィールドの名前を含む配列を取得または設定します。
このプロパティがnullまたは空の配列に設定されている場合は、 すべてのフィールドが 取得されます。
たとえば、以下のコードは、データベースの'Categories'テーブルから3つの フィールドのみを取得する ODataCollectionView を作成します。
import { ODataCollectionView } from '@grapecity/wijmo.odata';
var categories = new ODataCollectionView(url, 'Categories', {
fields: ['CategoryID', 'CategoryName', 'Description']
});
サーバーでデータをフィルタ処理するために使用されるODataフィルタ仕様 を含む文字列を取得または設定します。
フィルタ定義構文については、ODataドキュメントを参照してください。たとえば、以下のコードでは、 'CompanyName'フィールドが'A'で始まり'S'で終わるレコードがサーバーから返されます。
view.filterDefinition = "startswith(CompanyName, 'A') and endswith(CompanyName, 'B')";
フィルタ定義は自動生成することができます。 たとえば、FlexGridFilter コンポーネントは、データソースがODataCollectionView かどうかを検出し、 {@link ODataCollectionView.filter} プロパティとODataCollectionView.filterDefinition プロパティの両方を自動的に更新します。 ODataCollectionView.filterDefinition プロパティは、ODataCollectionView.filterOnServer プロパティがfalseに設定されている場合でも 適用されることに注意してください。 これにより、同じコレクションに対してサーバーフィルタとクライアントフィルタの両方を適用でき、 さまざまなシナリオで役立ちます。 たとえば、次のコードは、ODataCollectionView.filterDefinition プロパティを使用してサーバーでフィルタ処理を実行し、 {@link ODataCollectionView.filter} プロパティを使用してクライアントでさらにフィルタ処理を実行します。 結果のコレクションには、名前が'C'で始まり、単価が20より大きい項目が表示されます。
var url = 'http://services.odata.org/V4/Northwind/Northwind.svc/'; var data = new wijmo.odata.ODataCollectionView(url, 'Products', { oDataVersion: 4, filterDefinition: 'startswith(ProductName, \'C\')', // サーバー側のフィルタ filterOnServer: false, // クライアント側のフィルタ filter: function(product) { return product.UnitPrice > 20; }, });
フィルタリングがサーバー側とクライアント側のどちらで実行されるかを決定する値を取得または設定します。
フィルタリングをクライアント側で実行する場合はfilter プロパティを使用し、 サーバー側で実行する場合はfilterDefinition プロパティを使用します。 場合によっては、クライアント側とサーバー側の両方で個別にフィルタを適用したいことがあります。 そのために、(1)filterOnServer プロパティをfalseに設定してfilter プロパティにフィルタ関数を 設定し(これでクライアント側フィルタリングが有効になります)、 (2)filterDefinition プロパティにフィルタ文字列を設定します (これでサーバー側フィルタリングが有効になります)。
このプロパティのデフォルト値は trueです。
標準の日付表現のような文字列を含むフィールドを 自動的に日付に変換するかどうかを決定する 値を取得または設定します。
ODataCollectionView クラスは、DateオブジェクトをサポートしていないJSON形式を 使用するため、 このプロパティはデフォルトでtrueに設定されます。
dataTypes プロパティを使用して特定のタイプ情報を指定する場合、このプロパティは無効になります。
ODataCollectionView が現在データをロードしていることを示す 値を取得します。
このプロパティを使用して、進捗状況インジケータを提供できます。
サーバーから返されるJSON値を解析するときに使用するカスタムのreviver関数を取得または設定します。
提供されている場合、関数は2つのパラメータ(キーおよび値)があり、 解析された値(元の値と同じ値の場合があります)を返さなければなりません。
reviver関数の詳細については、JSON.parse methodを参照してください。
キーフィールドの名前を含む配列を取得または設定します。
更新操作(追加/削除/完全削除)にはキーフィールドが必要です。
サーバーによって使用されるODataのバージョンを取得または設定します。
現在、ODataサービスには1.0~4.0の4つのバージョンがあります。 最新サービスではバージョン4.0が使用されていますが、 レガシーサービスも依然として数多く運用されています。
利用するサービスが実装しているODataのバージョンがわかっている場合は、 ODataCollectionView を作成するときに、 oDataVersion プロパティを適切な値(1~4)に設定します(以下の例を参照)。
var url = 'http://services.odata.org/Northwind/Northwind.svc'; var categories = new wijmo.odata.ODataCollectionView(url, 'Categories', { oDataVersion: 1.0, // レガシーODataソース fields: ['CategoryID', 'CategoryName', 'Description'], sortOnServer: false });
利用するサービスが実装しているODataのバージョンがわからない場合 (おそらく、 ODataエクスプローラアプリケーションを記述している場合)には、 バージョンは指定しないでください。 その場合、 ODataCollectionView この情報をサーバーから取得します。この操作には追加のリクエストが必要ですが、 サービスURLあたり1回だけなので、オーバーヘッドは大きくありません。
総ページ数を取得します。
ページングをサーバーで実行するか、クライアントで実行するかを決定する 値を取得または設定します。
ページングを有効にするには、 pageSize プロパティを使用します。
このプロパティのデフォルト値は true です。
1ページに表示する項目数を取得または設定します。
データを送信または要求するときに使用する要求ヘッダーを含むオブジェクトを取得または設定します。
このプロパティは、認証が必要なシナリオでよく使用されます。 次に例を示します。
import { ODataCollectionView } from '@grapecity/wijmo.odata';
var categories = new ODataCollectionView(serviceUrl, 'Categories', {
fields: ['Category_ID', 'Category_Name'],
requestHeaders: { Authorization: db.token }
});
日付を現地日ではなくGMTのように調整するかどうかを決定する値を取得または設定します。
ソート操作がサーバー側とクライアント側のどちらで実行されるかを決定する値を取得または設定します。
データのソート方法は sortDescriptions プロパティによって指定します。
このプロパティのデフォルト値は true です。
このコレクションがバインドされているテーブル(エンティティ)の名前を取得します。
ページングを適用する前のビュー内の項目の合計数を取得します。
commitNew をオーバーライドして、データベース内の項目を変更します。
commitNew をオーバーライドして、データベースに新しい項目を追加します。
ODataソースからデータをロードまたは再ロードします。
error イベントを発生させます。
error イベントを発生させます。 デフォルトでは、エラーによって例外が生成され、データのリフレッシュがトリガされます。 この動作を回避するには、イベントハンドラでRequestErrorEventArgs.cancel パラメータをtrueに設定します。
エラーに関する情報を含むRequestErrorEventArgs 。
pageChanging イベントを発生させます。
イベントデータを含むPageChangingEventArgs 。
commitNew をオーバーライドして、データベースから項目を削除します。
データベースから削除する項目。
FlexGridFilter などの既知のフィルタプロバイダに基づいてフィルタ定義を更新します。
既知のフィルタプロバイダ。通常はFlexGridFilter のインスタンス。
データの読み込みまたは書き込みエラーがあるときに発生します。
ODataCollectionView がデータのロードを終了するときに発生します。
ODataCollectionView がデータのロードを開始するときに発生します。
CollectionView クラスを拡張して、ODataソースからのデータのロードおよびODataソースへの データの保存をサポートします。
ODataCollectionView クラスを使用して、ODataサービスからデータをロードし、 そのデータを任意のWijmoコントロールのデータソースとして使用できます。 完全なCRUDサポートに加えて、ソート、フィルタ処理、ページング、グループ化などの CollectionView 機能を使用できます。 ソート、フィルタ処理、およびページング機能は、サーバーでもクライアントでも実行できます。 以下のコードは、データソースからいくつかのフィールドを選択し、 クライアントにソート機能を提供するODataCollectionView をインスタンス化する方法を示します。 初期化データを渡すために'options'パラメータが使用されていますが、 これはコントロールの初期化と同じ手法です。
次の例では、ODataCollectionView を使用してNorthWind ODataプロバイダサービスからデータをロードし、 その結果をFlexGrid コントロールに表示する方法を示しています。
Example