5.20193.637
PivotCollectionView Wijmo API クラス

PivotCollectionView クラス

CollectionView クラスを拡張して、ソート時に小計行の位置を維持します。

Type parameters

  • T

階層

コンストラクタ

constructor

プロパティ

canAddNew

canAddNew: boolean

コレクションに新しい項目を追加できるかどうかを示す値を取得します。

canCancelEdit

canCancelEdit: boolean

適用前の変更を破棄して編集されたオブジェクトの元の値を復元できるかどうかを示す値を取得します。

canChangePage

canChangePage: boolean

pageIndex 値を変更できるかどうかを示す値を取得します。

canFilter

canFilter: boolean

このビューがfilter プロパティによってフィルタリングをサポートしているかどうかを示す値を取得します。

canGroup

canGroup: boolean

このビューがgroupDescriptions プロパティによってグループ化をサポートしているかどうかを示す値を取得します。

canRemove

canRemove: boolean

コレクションから項目を削除できるかどうかを示す値を取得します。

canSort

canSort: boolean

このビューがsortDescriptions プロパティによってソートをサポートしているかどうかを示す値を取得します。

currentAddItem

currentAddItem: T

現在の追加トランザクションの間に追加される項目を取得します。

currentEditItem

currentEditItem: T

現在の編集トランザクションの間に編集される項目を取得します。

currentItem

currentItem: T

ビューの現在の項目を取得します。

currentPosition

currentPosition: number

ビューの現在の項目の順序位置を取得します。

engine

engine: PivotEngine

このビューを所有するPivotEngine への参照を取得します。

filter

filter: IPredicate

項目がビューに含める対象として適しているかどうかを判断するために使用されるコールバックを取得または設定します。

このコールバック関数がtrueを返した場合、 パラメーターとして渡された項目はビューに含まれます。

メモ: フィルタ関数でスコープ(すなわち、有効な'this'値)が必要な場合は、 'this'オブジェクトを指定した'bind'関数を使用してフィルタを設定します。 例:

  collectionView.filter = this._filter.bind(this);

filters

filters: ObservableArray<IPredicate>

Gets an array of {@link IPredicate} functions used as filters on this CollectionView.

To be included in the view, an item has to pass the predicate in the filter property as well as all predicates in the filters collection.

getError

getError: IGetError

項目の特定のプロパティに検証エラーが含まれているかどうかを判定するコールバックを取得または設定します。

指定すると、コールバックは、検証する項目とプロパティを含む2つのパラメータを受け取り、 エラーを説明する文字列を返します(エラーがない場合はnull)。

次に例を示します。

import { CollectionView } from '@grapecity/wijmo';
var view = new CollectionView(data, {
    getError: function (item, property) {
        switch (property) {
            case 'country':
                return countries.indexOf(item.country) &lt; 0
                    ? 'Invalid Country'
                    : null;
            case 'downloads':
            case 'sales':
            case 'expenses':
                return item[property] &lt; 0
                    ? '負にはできません。'
                    : null;
            case 'active':
                return item.active && item.country.match(/US|UK/)
                    ? 'USまたはUKではアクティブな項目が許可されません。'
                    : null;
        }
        return null;
    }
});

groupDescriptions

groupDescriptions: ObservableArray<GroupDescription>

コレクションの項目をビューでどのようにグループ化するかを記述するGroupDescription オブジェクトのコレクションを取得します。

groups

最上位レベルのグループを表すCollectionViewGroup オブジェクトの配列を取得します。

isAddingNew

isAddingNew: boolean

追加トランザクションが進行中であるかどうかを示す値を取得します。

isEditingItem

isEditingItem: boolean

編集トランザクションが進行中であるかどうかを示す値を取得します。

isEmpty

isEmpty: boolean

このビューに項目が1つも含まれていないかどうかを示す値を取得します。

isPageChanging

isPageChanging: boolean

ページインデックスが変更されているかどうかを示す値を取得します。

isUpdating

isUpdating: boolean

通知が現在中断されているかどうかを示す値を取得します(beginUpdate およびendUpdate を参照)。

itemCount

itemCount: number

ページングを適用する前のビューの既知の項目の数を取得します。

items

items: T[]

ビューの項目を取得します。

itemsAdded

itemsAdded: ObservableArray

trackChanges が有効化されてから、コレクションに追加されたレコードを含むObservableArray を取得します。

itemsEdited

itemsEdited: ObservableArray

trackChanges が有効化されてから、コレクションで編集されたレコードを含むObservableArray を取得します。

itemsRemoved

itemsRemoved: ObservableArray

trackChanges が有効化されてから、コレクションから削除されたレコードを含むObservableArray を取得します。

newItemCreator

newItemCreator: IItemCreator<T>

コレクションの新しい項目を作成する関数を取得または設定します。

作成関数が提供されない場合、CollectionView は、適切な型の項目を 初期化せずに作成しようとします。

作成関数が提供される場合、その関数は、パラメータを受け取らず、 コレクションに対して適切な型のオブジェクトを初期化して返す 必要があります。

pageCount

pageCount: number

総ページ数を取得します。

pageIndex

pageIndex: number

現在のページの0から始まるインデックスを取得します。

pageSize

pageSize: number

各ページに表示する項目数を取得または設定します。

refreshOnEdit

refreshOnEdit: boolean

Gets or sets a value that determines whether the CollectionView should automatically refresh its results (by applying the sort, filter, and grouping operations) after items are edited.

This property is set to true by default, which ensures the collection is always sorted, filtered, and grouped correctly after any edit operations.

Set it to false if you want updates to be deferred when items are edited. In this case, the collection will not be refreshed until the sorting, filtering, and grouping criteria change or until the refresh method is called (Excel behavior).

sortComparer

sortComparer: IComparer<T>

ソート時に値の比較に使用する関数を取得または設定します。

指定された場合、ソート比較関数は、パラメータとして任意の型の値を 2つ取り、最初の値が2番目の値と比べて小さい、等しい、または大きい のいずれであるかを示す値-1、0、または+1を返します。ソート比較関数がnullを返す場合は、標準の組み込み比較子が使用されます。

このsortComparer プロパティを使用すると、カスタム比較アルゴリズムを 提供でき、単純な文字列比較より、ユーザーが期待する結果によく 一致するソートシーケンスが得られる場合があります。

たとえば、 Dave Koele's Alphanum algorithmを参照してください。 このアルゴリズムは、文字列を文字列や数値から成る部分に分割した後、 数値部分は値順に、文字列部分はASCII順にソートします。 Daveは、この結果を「自然なソート順」と呼んでいます。

次の例は、sortComparer プロパティの一般的な使用方法を示します。

// カスタムソート比較子を使用してCollectionViewを作成します
var dataCustomSort = new wijmo.collections.CollectionView(data, {
  sortComparer: function (a, b) {
    return wijmo.isString(a) && wijmo.isString(b)
      ? alphanum(a, b) // 文字列に使用するカスタム比較子
      : null; // 文字列以外にはデフォルトの比較子を使用します
  }
});

次の例は、 Intl.Collator を使用してソート順を制御する方法を示しています。

// Intl.Collatorを使用してソートするCollectionViewを作成します
var collator = window.Intl ? new Intl.Collator() : null;
var dataCollator = new wijmo.collections.CollectionView(data, {
  sortComparer: function (a, b) {
    return wijmo.isString(a) && wijmo.isString(b) && collator
      ? collator.compare(a, b) // 文字列に使用するカスタム比較子
      : null; // 文字列以外にはデフォルトの比較子を使用します
  }
});

sortConverter

sortConverter: ISortConverter

ソート時の値の変換に使用される関数を取得または設定します。

指定されている場合、この関数は、SortDescription、データ項目、および変換する値をパラメーターとして受け取り、 変換後の値を返す必要があります。

このプロパティはソートの動作をカスタマイズする手段を提供します。 たとえば、 FlexGrid コントロールはこのプロパティを使用して、 マップされた列を生の値ではなく表示値を基準にソートします。

以下のサンプルコードは、国コードの整数を含む'country'プロパティをソートするときに、 対応する国名を使用してソートされるようにします。

var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(',');
collectionView.sortConverter = function (sd, item, value) {
  if (sd.property == 'countryMapped') {
    value = countries[value]; // 国IDを国名に変換します
  }
  return value;
}

sortDescriptions

sortDescriptions: ObservableArray

コレクションの項目をビューでどのようにソートするかを記述するSortDescription オブジェクトの配列を取得します。

sortNullsFirst

sortNullsFirst: boolean

コレクションをソートする時(ソート方向に関係なく)、null値を最初に表示するか最後に表示するかを決定する値を取得または設定します。

このプロパティはデフォルトでfalseに設定されます。これにより、コレクションをソートするとNULL値が最後に表示されます。 この動作はExcelと同じです。

sourceCollection

sourceCollection: any

基になる(フィルタリングもソートもされていない)コレクションを取得または設定します。

totalItemCount

totalItemCount: number

ページングを適用する前のビュー内の項目の合計数を取得します。

trackChanges

trackChanges: boolean

コントロールがデータの変更を追跡するかどうかを決定する値を取得または設定します。

trackChanges がtrueに設定されている場合、CollectionView は、 データの変更を追跡し、itemsAddeditemsRemoveditemsEdited の 各コレクションを介して変更を公開します。変更の追跡は、変更が有効であることをユーザーが確認した後にサーバーを更新する必要がある場合に役立ちます。

変更をコミットまたはキャンセルしたら、clearChanges メソッドを使用して、 itemsAddeditemsRemoveditemsEdited の各コレクションをクリアします。 CollectionView は、適切なCollectionView メソッド(editItem /commitEditaddNew /commitNewremove)を使用して行われた変更だけを追跡します。 データに直接行われた変更は追跡されません。

useStableSort

useStableSort: boolean

安定したソートアルゴリズムを使用するかどうかを取得または設定します。

安定したソートアルゴリズムは、同じキーを持つレコード間の相対的な順序を維持します。 たとえば、"Amount"フィールドを持つオブジェクトのコレクションを考えてみます。 このコレクションを"Amount"でソートする場合、安定したソートでは、 Amount値が同じレコード間で元の順序が保たれます。

このプロパティのデフォルトはfalseです。この場合は、 高速だが安定ではないJavaScriptの組み込みソートメソッドがCollectionView で使用されます。 useStableSort をtrueに設定すると、ソート時間が30%~50%も長くなります。 コレクションが大きいと、かなりの時間の増加になります。

メソッド

addNew

  • addNew(): T
  • 新しい項目を作成し、コレクションに追加します。

    このメソッドは、パラメータを受け取りません。 新しい項目を作成し、それをコレクションに追加し、新しい項目がcommitNew メソッドでコミットされるか、 cancelNew メソッドでキャンセルされるまで、リフレッシュ操作を保留します。

    次のコードは、addNew メソッドの典型的な使用方法を示します。

    // 新しい項目を作成し、それをコレクションに追加します
    var newItem = view.addNew();
    // 新しい項目を初期化します
    newItem.id = getFreshId();
    newItem.name = '新しい顧客';
    // ビューをリフレッシュできるように新しい項目をコミットします
    view.commitNew();
    

    新しい項目をsourceCollection にプッシュしてから、refresh メソッドを呼び出すことで、 新しい項目を追加することもできます。addNew では、 ユーザーが追加操作をキャンセルできるため、ユーザー対話式のシナリオ(データグリッドに新しい項目の追加するなど)で特に便利です。 また、追加操作がコミットされるまで、新しい項目がソートされたり、 フィルタ処理でビューから除外されないようにします。

    戻り値 T

    The item that was added to the collection.

beginUpdate

  • beginUpdate(): void

cancelEdit

  • cancelEdit(): void

cancelNew

  • cancelNew(): void

clearChanges

  • clearChanges(): void
  • itemsAddeditemsRemoveditemsEdited の各コレクションの全項目をクリアすることによってすべての変更をクリアします。

    このメソッドは、変更をサーバーに確定した後またはデータをサーバーから更新した後に呼び出します。

    戻り値 void

commitEdit

  • commitEdit(): void

commitNew

  • commitNew(): void

contains

  • contains(item: T): boolean

deferUpdate

  • deferUpdate(fn: Function): void
  • beginUpdate/endUpdate ブロック内で関数を実行します。

    この関数が終了するまでコレクションはリフレッシュされません。 このメソッドは、関数が例外を生成した場合でもendUpdate が呼び出されるようにします。

    引数

    • fn: Function

      更新なしで実行する関数。

    戻り値 void

editItem

  • editItem(item: T): void
  • 指定した項目の編集トランザクションを開始します。

    引数

    • item: T

      編集する項目。

    戻り値 void

endUpdate

  • endUpdate(): void

getAggregate

  • getAggregate(aggType: Aggregate, binding: string, currentPage?: boolean): any
  • このコレクション内の項目の集計値を計算します。

    引数

    • aggType: Aggregate

      計算する集計のタイプ。

    • binding: string

      集計するプロパティ。

    • オプション currentPage: boolean

      現在のページの項目だけを含めるかどうか。

    戻り値 any

    The aggregate value.

implementsInterface

  • implementsInterface(interfaceName: string): boolean

moveCurrentTo

  • moveCurrentTo(item: T): boolean

moveCurrentToFirst

  • moveCurrentToFirst(): boolean

moveCurrentToLast

  • moveCurrentToLast(): boolean

moveCurrentToNext

  • moveCurrentToNext(): boolean

moveCurrentToPosition

  • moveCurrentToPosition(index: number): boolean

moveCurrentToPrevious

  • moveCurrentToPrevious(): boolean

moveToFirstPage

  • moveToFirstPage(): boolean

moveToLastPage

  • moveToLastPage(): boolean

moveToNextPage

  • moveToNextPage(): boolean

moveToPage

  • moveToPage(index: number): boolean
  • 指定したインデックスにあるページに移動します。

    引数

    • index: number

      移動先ページのインデックス。

    戻り値 boolean

    True if the page index was changed successfully.

moveToPreviousPage

  • moveToPreviousPage(): boolean

onCollectionChanged

onCurrentChanged

onCurrentChanging

onPageChanged

onPageChanging

onSourceCollectionChanged

  • onSourceCollectionChanged(e?: EventArgs): void

onSourceCollectionChanging

refresh

  • refresh(): void

remove

  • remove(item: T): void
  • 指定した項目をコレクションから削除します。

    引数

    • item: T

      コレクションから削除する項目。

    戻り値 void

removeAt

  • removeAt(index: number): void
  • 指定したインデックスにある項目をコレクションから削除します。

    引数

    • index: number

      コレクションから削除する項目のインデックス。このインデックスは、ソースコレクションに対してではなくビューに対する相対インデックスです。

    戻り値 void

イベント

collectionChanged

コレクションが変更されたときに発生します。

currentChanged

currentChanged: Event<CollectionView<any>, EventArgs>

現在の項目が変更された後に発生します。

currentChanging

currentChanging: Event<CollectionView<any>, CancelEventArgs>

現在の項目が変更される前に発生します。

pageChanged

pageChanged: Event<CollectionView<any>, EventArgs>

ページインデックスが変更された後に発生します。

pageChanging

ページインデックスが変更される前に発生します。

sourceCollectionChanged

sourceCollectionChanged: Event<CollectionView<any>, EventArgs>

sourceCollection プロパティの値が変化した後に発生します。

sourceCollectionChanging

sourceCollectionChanging: Event<CollectionView<any>, CancelEventArgs>

sourceCollection プロパティの値が変化する前に発生します。