2007年11月27日火曜日

dhtmkxGrid 背景色と表示切り替え

読み込んだデータの内容で色分けする方法


function colorSets(){
var chk;
var col;
for(var y=0;y<mygrid.getRowsNum();y++){
chk = mygrid.cells(mygrid.getRowId(y),2).getValue();
if(chk=="新規"){
col = "Pink";
}else if(chk=="保留"){
col = "Lavender";
}else if(chk=="完了"){
col = "LemonChiffon";
}else if(chk=="受付済"){
col = "#ffb2b2";
}else if(chk=="修正済"){
col = "#ccffcc";
}
for(var i=0;i<=4;i++)
mygrid.cells(mygrid.getRowId(y),i).setBgColor(col);
}
}


セルの特定のカラムを読み取って、内容別にrow毎の色を変更する。

読み込んだデータ別に表示を切り替える方法


var hideids = new Array();
function changeType(){
var chk;
var vitm = $F("changeType");
for(var i=0;i<hideids.length;i++){
mygrid.setRowHidden(hideids[i],false);
}
if(vitm=="全体"){
return;
}
for(var y=0;y<mygrid.getRowsNum();y++){
chk = mygrid.cells(mygrid.getRowId(y),2).getValue();
if(chk!=vitm){
hideids.push(mygrid.getRowId(y));
mygrid.setRowHidden(mygrid.getRowId(y),true);
}
}
}


changeTypeというプルダウンの内容を取得し、
その内容と一致していないrowはidを保持した後(hideids.push部分)、
setRowHiddenを実行し、表示を隠す。
このとき、idを忘れると非表示を復活させられないので、注意が必要。
サンプルでは一度、全rowを表示にしてから比較処理をしている。
こうしないと、全rowを舐めてチェック出来ないからである。
別途、テーブルを持ってれば、こんなことをしなくてもOK。

0 件のコメント: