Introducing React ReExt – Sencha Ext JS Components in React! LEARN MORE

Ext JS Data Gridをすばやくカスタマイズする方法(part 1/6)

March 10, 2020 155 Views
Show

Ext JS Data Gridは、高速で強力かつ柔軟に利用できます。Ext JSを使用すると、ユーザーは自分のアプリケーションに合わせてグリッドの外観をすばやくカスタマイズできます。全6回構成のブログシリーズでExt JS Data Gridをカスタマイズするさまざまな方法をカバーします。

ここではNBA 2020プレーヤーの評価を表示する単純なグリッドを作成します。

最初のブログ記事では、GridとColumnに予め用意されているプロパティを使ったデモを用いて説明します

 

Ext JS Grid のセットアップ

最初に定義するのはExt.data.Modelです。これは基本的にデータのタイプを表すフィールドのコレクションです。ここでは ‘player’, ‘team’, ‘rating’ のフィールドを定義しています。

Ext.define('Player', {
    extend: 'Ext.data.Model',
    fields: ['player', 'team', {
        name: 'rating',
        type: 'int'
    }]
});

次にExt.data.Storeをセットアップします。これはユーザインスタンスを含みます。この例は個々のデータをStoreに直接記述して静的な情報として定義していますが、実際のアプリケーションでは、データをサーバーからロードすることもできます。この操作は Ext.data.proxy.Proxy を用いて容易に行えます。

ここでは ’player’, ’team’. ‘rating’ として扱うデータを保持しています。

 

 var store = Ext.create('Ext.data.Store', {
    model: 'Player',
    data: [{
        player: 'Kemba Walker',
        team: 'Boston Celtics',
        rating: 88
    }, {
        player: 'Josh Richardson',
        team: 'Philadelphia 76ers',
        rating: 79
    }]
});

データの表示は Ext.grid.Panel を使用し、必要なカスタマイズを行います。

Ext.create('Ext.grid.Panel', {
    renderTo: document.body,
    title: 'NBA 2K20 player rating',
    //使用するストアの定義
    store: store,
    columns: [{
        dataIndex: 'player',
        text: 'Name',
    }, {
        dataIndex: 'rating',
        text: 'Rating',
    }, {
        dataIndex: 'team',
        text: 'Team',
    }]
});

GridとColumnのプロパティをカスタマイズする

先程作成したGridはカスタマイズを行っておらず、魅力的なものとは感じられません。そこでGridの機能をより使いやすくカスタマイズする際に使用できる一般的なプロパティを次に示します。

Gridのプロパティ:

  • collapsible:Gridのヘッダに配置されたアイコンで展開/折りたたみ操作を可能にする
  • headerBorders [Classic]:Gridの境界線の表示、非表示を設定する
  • selModel [Classic]:Gridに表示したデータの選択方法の設定
  • hideHeaders:Columnのヘッダを非表示にする
  • title:Columnのタイトルバーにタイトルを表示する
  • width, height:Gridの幅と高さを指定する
  • store:表示されるデータが含まれるStoreを指定する

Column のプロパティ:

  • dataIndex : Modelのフィールド名を指定する
  • textColumnヘッダーのテキストを設定する
  • locked特定のColumnを固定表示する
  • sortableColumnのソートを許可する
  • widthColumnの幅を調整する
  • flexColumnのflexを調整する
  • alignColumnの整列方法を調整する

simple-grid

Ext.create('Ext.grid.Panel', {
  renderTo: document.body,
  title: 'NBA 2K20 player rating',
  //グリッドパネルの折り畳み/展開を有効にする
  collapsible: true,
  //ヘッダの境界線を表示
  headerBorders: true,
  //使用するストアの定義
  store: store,
  columns: [{
    dataIndex: 'player',
    text: 'Name',
    //このカラムを固定表示する
    locked: true,
    width: 150,
    //カラムのソート機能を無効化
    sortable: false
  }, {
    dataIndex: 'rating',
    text: 'Rating',
    flex: 1
  }, {
    dataIndex: 'team',
    text: 'Team',
    flex: 1,
    //カラムのソート機能を無効化
    sortable: false
  }]
});

このコードをFiddle Toolで確認して実行する

その他のコンフィグやプロパティについては Ext JS GridPanel のドキュメントをお読みください。

次回のブログ記事ではGridに「グループ化」機能を追加するカスタマイズ方法を説明します。ご期待ください。

Part2の記事を読む

Ext JS 7.1でデータグリッドを作成する

Ext JS 7.1の30日間無料トライアルは、製品の全ての機能にアクセスできます、アプリケーションに高性能なデータグリッドを作成する方法をお読みいただき、Get Started のドキュメントから始めましょう!

Recommended Articles

Virtual JS Days 2024のハイライト

2024年2月20日~22日、第3回目となる「Virtual JavaScript Days」が開催されました。JavaScript の幅広いトピックを採り上げた数多くのセッションを実施。その内容は、Senchaの最新製品、ReExt、Rapid Ext JSまで多岐にわたり、JavaScriptの最新のサンプルも含まれます。 このカンファレンスでは多くのトピックをカバーしています。Senchaでセールスエンジニアを務めるMarc Gusmano氏は、注目すべきセッションを主催しました。Marc は Sencha の最新製品「ReExt」について、詳細なプレゼンテーションを実施。その機能とメリットを、参加者に理解してもらうべく詳細に説明しました。 カンファレンスは、Senchaのジェネラルマネージャを務めるStephen Strake氏によるキーノートでスタートしました。キーノートでは、会社の将来のビジョンについての洞察を共有しています。世界中から JavaScript 開発者、エンジニア、愛好家が集まるとてもエキサイティングなイベントとなりました。これは、JavaScript エコシステムの最新情報について学ぶユニークな機会と言えます。

Ext JS 7.7リリース

このたび、Senchaチームは、Sencha Ext JS 7.7のリリースを発表しました。このリリースでは、7.6リリースに続き、Grid、Modern Sliderfieldなどユーザーの皆さんからの要望の多かった機能の強化に加え、双方のツールキットで、Grid、Chart、TreePanel、Timefield、ComboBox、Storeなどにフォーカスして品質改善を行っています。

Sencha 2023/2024 ロードマップアップデート

このブログ記事では、近い将来に計画しているSencha製品のリリースについての詳細を説明します。 Sencha チームでは、日々お客様と対話を続けており、皆さんのフィードバックが、製品全体の方向性の決定に大きな役割を果たしています。 ロードマップアップデートの詳細を説明する前に、Senchaの新しいサービスを含め、ここ数ヶ月で提供した内容についてまとめておきたいと思います。

JavaScript開発者必見のオンラインイベント「SenchaCon 2023」

常に最新のテクノロジー、ツール、トレンドを把握することの重要性を理解しているJavaScript開発者。そんなエンジニアを対象とした、オンラインイベント「SenchaCon 2023」が開催されます。 このカンファレンスでは、あらゆるレベルのJavaScript開発者が集い、スキルアップやナレッジを共有できる環境を提供します。SenchaCon 2023には、注目のスピーカーが登壇し、興味深いコンテンツをお届けします。まさに、必見のイベントです。 SenchaCon 2023は、米国中部標準の2023年4月12日9時(日本時間4月12日23時)に開催されます。

Sencha GRUIの新しいブランド・アイデンティティ「BestReactGrid」

Senchaでは、「Sencha GRUI」を「BestReactGrid」にリブランドし、Reactコミュニティに向け、React開発者のユーザーエクスペリエンスの向上を実現するスタンドアロンエンティティとして提供することを発表しました。この比類ない機能と特長により、BestReactGridは、世界中のReact開発者にとって絶好の選択肢となるものと期待されます。

Rapid Ext JS ベータ版を公開

今回、Rapid Ext JSベータ版をリリースしたことを発表します。このベータ版によって、新たに提供されるハイパフォーマンスツールを早期にお試しいただくことができます。すでに Sencha Ext JSを利用されている方は、新たにラインナップに加わるSencha Rapid Ext JSの登場を歓迎されていることと思います。Rapid Ext JSは、強力なローコード エディターであり、Ext JSによる開発をスピードアップすることが可能です。 この記事では、Rapid Ext JS のハイライトを紹介します。

View More