webアプリ‎ > ‎dojo‎ > ‎

onStyleRow

2011/08/23 19:27 に Masanori YONO が投稿   [ 2011/08/23 19:48 に更新しました ]
Gridのスタイルを変更に伴うイベントなので、このイベントを登録して、セルや行の背景色を変更できるみたい。ただ、データストア時にもこのイベントが起きているみたいで、行のデータを参照して色を変更、というような以下のような処理ではエラーが起きた。

var rec_table = dijit.byId("myDataGrid");
dojo.connect(rec_table, "onStyleRow", function(d_row){
    var item = rec_table.getItem(d_row.index);
   
    
//if(item == null) return;
   
    var weight = rec_table.getItem(d_row.index).weight[0];

    if(weight > 60){
        d_row.customStyles += "background-color:yellow;";
    }
    rec_table.focus.styleRow(d_row);
    rec_table.edit.styleRow(d_row);
});


なのでコメント文のようにデータストアされる前ならこのイベントでの処理を抜けるようにした。このイベントはセルを選択したり、ポインタを置いたりするたびに発生している様子。データストアの時に一度だけ設定すればいいようなイベントは自分が知らないだけであるのかもしれない。ただ、グリッドでソートして行の入れ替えもできるので、このイベントで設定するのが確実なのかもしれない。
Comments