Getting started with Ignite UI
Ignite UI の始め方

- 2017/07/21(金) 時点の情報に基づいています -

こんにちは、インフラジスティックス・ジャパン デベロッパーサポート の桐生です。

Ignite UI の始め方と題して

  • Ignite UI のオンラインサンプル
  • Ignite UI のダウンロード
  • Ignite UI の最小構成
  • Ignite UI の実装基礎
  • Ignite UI の他フレームワークへの組み込み(次回以降)

について整理していきたいと思います。既出の情報もあるかと思いますがご容赦ください。

 

Ignite UI のオンラインサンプル

https://jp.igniteui.com/

のページにてサンプルを公開していますので、気になったコントロールをオンライン上で試すことができます。

  • グリッド(編集、ページング、フィルタリング、ソート、列固定、Excelエクスポート、グループ化など)
  • チャート(カテゴリ、パイ、ドーナツなど)
  • エディター(コンボ、日付ピッカー、数値、マスク、HTML、バリデーションなど)
  • レイアウト(タイル、スプリッター、スクローラーなど)
  • その他(ツリー、ダイアログ、ファイルアップロード、ポップオーバーなど)

など

個人的なおススメは、グリッドのパフォーマンスサンプルです。データ数、列数を好きな値に変更してどれくらいパフォーマンスが出るのかを簡単にチェックできます。詳細は以下のポストをご覧ください。

http://blogs.jp.infragistics.com/blogs/tatsushi-kiryu/archive/2017/01/31/ignite-ui-iggrid.aspx

 

Ignite UI のトライアルダウンロード

https://jp.infragistics.com/free-downloads/ignite-ui

のページからダウンロードすることができます。ダウンロード方法がいくつかあります。

1.インストーラーを使った方法

「ダウンロード」ボタンをクリックするとトライアル版をダウンロードすることができます。ここからダウンロードされるファイルは Ignite UI を含む弊社製品の全てをインストールできるインストーラーです。ダウンロード後、インストーラーを使って Ignite UI のソースコードをインストールします。

C:\Program Files (x86)\Infragistics\20XX.X\Ignite UI

配下に Ignite UI の JS、CSS ファイルが配置されますのでこれらを使ってトライアルすることができます。

2.CDN を使った方法

インストーラーは面倒という場合は「CDNリンクを確認」ボタンをクリックして表示される JS、CSS の CDN リンクを使用してすぐにトライアルを始めることができます。

3.パッケージマネージャー を使った方法

npm, yarn, NuGet といったパッケージマネージャーを使ってダウンロードすることもできます。

「詳細」ボタンをクリックして表示されるダイアログからお好きなパッケージマネージャーのタブを選択し、表示されるコマンドを実行します。

注意として、npm, yarn でダウンロードした Ignite UI で使用できるコントロールは OSS 版のみになります。

https://github.com/IgniteUI/ignite-ui

グリッドやチャートを使いたい場合は、インストーラーや CDN あるいは NuGet 経由でのダウンロードが必要となります。

4.カスタムビルド を使った方法

必要な機能のみに絞ったカスタムビルドを作成してダウンロードすることもできます。カスタムビルドの「詳細」ボタンをクリックします。ライブラリのファイルサイズを抑えることができるため、画面の表示パフォーマンス向上に貢献します詳細は以下のポストをご覧ください。

http://blogs.jp.infragistics.com/blogs/tatsushi-kiryu/archive/2016/07/21/ignite-ui.aspx

 

Ignite UI の最小構成

ヘルプトピック:Ignite UI ボイラープレート HTML ページのサンプル (CDN リンクを使用)

https://jp.igniteui.com/help/getting-started#boilerplate

を参考に JS、CSS を読み込んでください。これが Ignite UI の最小構成となります。ただし、以下の点に注意してください。

  • CSS について
    • css/themes/infragistics/infragistics.theme.css は css/structure/infragistics.css よりも先に読み込まなければなりません。
  • JS について
    • jQuery, jQuery UI の読み込みが必須です。js/infragistics.core.js よりも先に読み込まなければなりません。
    • js/infragistics.core.js は、js/infragistics.lob.js や js/infragistics.dv.js よりも先に読み込まなければなりません。
    • js/infragistics.lob.js には、グリッドやエディターなどのコントロールが含まれています。チャート系が不要であれば js/infragistics.dv.js の読み込みは不要です。
    • js/infragistics.dv.js には、チャート系のコントロールが含まれています。グリッド系が不要であれば js/infragistics.lob.js の読み込みは不要です。

Ignite UI コントロールの実装基礎

Ignite UI はもともと jQuery UI をベースにしているので、基本的な使い方は jQuery UI と同じです。

コントロールの生成

Ignite UI コントロールをアタッチするための DOM を HTML に追加します。基本的には DOM に id 属性が必要で、id セレクターを使って DOM への参照を取得し、コントロールを生成します。

  1. <table id="grid"></table>  
  2.   
  3. $('#grid').igGrid({  
  4.     // オプション設定  
  5. });  

https://jp.igniteui.com/help/api/2017.1/ui.iggrid#options

など各コントロールの API リファレンスの「オプション」タブに載っているオプションを生成時に設定することができます。オプションの具体的な設定方法についてはオンラインサンプル内のコードビューで確認するか、

https://jp.igniteui.com/help/api/2017.1/ui.iggrid#overview

APIリファレンスの「概要」タブのコードサンプルでも確認することができます。

コントロールが生成されているかをチェックする方法

コントロールのインスタンスを取得する方法があります。このインスタンスの有無で、生成されているかどうかを確認することができます。コントロールが生成されていない場合、undefined が返りますので、以下のように if を使って判定が可能です。

  1. // インスタンスの取得  
  2. var igGrid = $('#grid').data('igGrid');  
  3. // jQuery UI 1.11 からは instance メソッドを使用してインスタンスを取得することができます  
  4. // http://api.jqueryui.com/jQuery.widget/#method-instance  
  5. // var igGrid = $('#grid').igGrid('instance');  
  6. if (igGrid) {  
  7.     console.log('生成されている')  
  8. else {  
  9.     console.log('生成されていない')  
  10. }  

コントロールのメソッド実行方法

https://jp.igniteui.com/help/api/2017.1/ui.iggrid#methods

など各コントロールの API リファレンスの「メソッド」タブに載っているメソッドを実行することができます。

  1. // $('#grid').igGrid('メソッド名');  
  2. // 例:commit メソッドの実行  
  3. $('#grid').igGrid('commit');  

もう1つ、コントロールのインスタンスを介してメソッドを実行する方法があります。

  1. // インスタンスの取得  
  2. var igGrid = $('#grid').data('igGrid');  
  3. // commit メソッドの実行  
  4. igGrid.commit();  

こちらもご参考ください。

http://learn.jquery.com/jquery-ui/widget-factory/widget-method-invocation/

コントロールのオプションの動的な取得/設定方法

https://jp.igniteui.com/help/api/2017.1/ui.iggrid#options

コントロールのオプションは、コントロールの生成後でも動的に取得/設定することができます。ただし、コードサンプル内で「// Set」の例示がないものは動的に設定することができない点に注意してください。

基本的には option メソッドを使用して取得/設定を行います。

  1. // Get  
  2. // $('#grid').igGrid('option', 'オプション名');  
  3. // 例:width オプション値の取得  
  4. var width = $('#grid').igGrid('option''width');  
  5. // Set  
  6. // $('#grid').igGrid('option', 'オプション名', 値);  
  7. // 例:width オプション値の設定  
  8. $('#grid').igGrid('option''width', 1000);  

コントロールのインスタンスを介して行う場合は以下のようになります。

  1. // インスタンスの取得  
  2. var igGrid = $('#grid').data('igGrid');  
  3. // Get  
  4. var width = igGrid.option('width');  
  5. // Set  
  6. igGrid.option('width', 1000);  

実は、コントロールのインスタンスプロパティからオプション値を取得することもできます。記述がシンプルになるのでオススメです。

  1. // インスタンスの取得  
  2. var igGrid = $('#grid').data('igGrid');  
  3. // Get  
  4. var width = igGrid.options.width;  

パフォーマンスを意識した実装方法

  1. // igGrid の生成  
  2. $('#grid').igGrid({  
  3.     // オプション設定  
  4. });  
  5. // Get width  
  6. var width = $('#grid').igGrid('option''width');  
  7. // Set width  
  8. $('#grid').igGrid('option''width', width + 100);  
  9. // commit  
  10. $('#grid').igGrid('commit');  

実は、上記の実装はパフォーマンス的には良くありません。なぜなら $('#grid') のところで毎回 jQuery オブジェクトを生成するコストがかかっているためです。一度生成した jQuery オブジェクトはキャッシュしておくべきで、以下のようにリファクタリングできます。

  1. // jQuery オブジェクトをキャッシュ  
  2. var $grid = $('#grid');  
  3. // igGrid の生成  
  4. $grid.igGrid({  
  5.     // オプション設定  
  6. });  
  7. // Get width  
  8. var width = $grid.igGrid('option''width');  
  9. // Set width  
  10. $grid.igGrid('option''width', width + 100);  
  11. // commit  
  12. $grid.igGrid('commit');  

あるいは、コントロールの生成直後にインスタンスを取得しておく方法もあります。上記よりもよりシンプルで見やすい記述になるので、オプションへのアクセスやメソッド実行が多くなる場合にはこちらのほうが適していると思います。また、純粋にコード量が減るので、ファイルサイズを抑えることにもつながります。

  1. // igGrid を生成してインスタンスを取得  
  2. var igGrid = $('#grid').igGrid({  
  3.     // オプション設定  
  4. }).data('igGrid');  
  5. // Get width  
  6. var width = igGrid.option('width');  
  7. // Set width  
  8. igGrid.option('width', width + 100);  
  9. // commit  
  10. igGrid.commit();   

Ignite UI の他フレームワークへの組み込み(次回以降)

前述の通り、Ignite UI はもともと jQuery UI をベースにしたコントロールではありますが、現在では

  • Angular
  • React

といったフレームワークと共に使うことができるようになっています。

また、サーバーサイドテクノロジー

  • ASP.NET MVC
  • ASP.NET Core

に組み込んで開発することもできます。

次回以降、これらの技術と組み合わせて使用する方法について紹介していきたいと思います。

Posted: 21 Nov 2017, 13:07

Comments

No Comments

Anonymous comments are disabled