スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[AIR] DataGrid にて、特定の行の背景色を変更する

Flex での DataGrid の背景色の変更については、
少し調べるとセルを描画するレンダラを変更して
云々というのが見つかるのですが、

DataGridで特定の行のスタイルを変更したい - 教えて!goo
http://oshiete1.goo.ne.jp/qa2728403.html

DataGridの背景色を変える - Flex Coder
http://d.hatena.ne.jp/sato-shi/20060824/p3

斜め読みしてまあまあ理解したような気にはなったのですが、
コードが長く、正直ちょっと手を出しにくい感じです。

そこでこちらの方法を採用しました。

第12回 Flexが備えるMXMLコンポーネント(Part7:データグリッド)
http://itpro.nikkeibp.co.jp/article/COLUMN/20070330/267029/

 「1-9.データによって行の背景色を変える」の部分を参照下さい。

 Webプログラミングで表など作った事のある方はピンときやすいと思うのですが、
交互に行の背景色を変える際に、その表の行のインデクス(n番目)を、2で割って
その余りで行の背景色を変える、というのが常道としてあるかと思います。
( 0, 1, 0, 1 .... と交互になるので、これで振分けを行う )

 DataGrid もこの方式を内部では用いているので、この色パターンを行数分だけ
再構築してやることで、特定の色をつけたい行に、色をセットすればいいようです。

 上記サイトでのサンプルコードがダウンロードできますので、
コードはそちらを参照下さい。
DataGridSample2.mxml の setColorPattern() です。

 関数の引数、変数など適宜変更することで応用可能かと思います。
 肝はループ内で振り分けて colors.push() している部分で、
ここが複数回処理されるループではデータの件数分、
すなわち表の行数分だけ処理(背景色の設定)が行われます。

 通常であれば、既定である色パターンを交互に採用します。
 特定の行に対しては、条件で振り分けてやることで指定色を設定しています。
 これにより、行数分の色パターンが設定され、もともとの DataGrid が行っている
背景色表示を行うときにその色パターンを参照してもらえるというわけです。
関連記事
スポンサーサイト

comment

管理者にだけメッセージを送る

検索フォーム
リンク
最新記事
最新コメント
カテゴリ
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。