0

約 38 列のデータを含む jqgrid を読み込んでいます。最初の 6 列は凍結され、他の列は凍結解除されました (日付と月はコンボ ボックスによって異なります。サンプル画像はこちらを参照してください)。データが jqgrid の読み込みを終了したら、凍結された列の最後の列の隣にある現在の日の特定の列に jqgrid を自動的にスクロールしたいと思います。スクロールは現在の日付に依存します (例: 今日が 2012 年 7 月 26 日の場合、その特定の日付まで自動的にスクロールします)。

もう1つは、その日がデータを受信したときにセルが赤と緑に点滅する(データまたは値があるセルは2色に点滅する)、などです。

これを行う方法を知っている人はいますか?
ありがとう!. レイアウトのサンプル画像はこちらをご覧ください。

4

2 に答える 2

1

この関数を使用して、現在の日付列にスクロールします

function scrollToCurrentDate(currentDate,jqGrid){
    var width =0 ;
    var frozenWidth = 0;
    for(var i =0,col;col=jqGrid[0].p.colModel[i];i++){
        width += $("#"+jqGrid[0].id+"_"+col.name)[0].offsetWidth;
        if(col.name.indexOf('Qty')==0){
            var day = col.name.replace('Qty','');
            var date = $("#CurrentYear").val()+'-'+$("#CurrentMonth").val()+'-'+(parseInt(day)<10?"0"+day:day);

            if(currentDate == date){  
                var columnWidth = $("#"+jqGrid[0].id+"_"+col.name)[0].offsetWidth;
                $(".ui-jqgrid-hdiv").scrollLeft((width-columnWidth)-frozenWidth);
                $(".ui-jqgrid-bdiv").scrollLeft((width-columnWidth)-frozenWidth);
                break;
            }
        }
        else{
          frozenWidth += $("#"+jqGrid[0].id+"_"+col.name)[0].offsetWidth;    
        }
    }
}

次に、gridComplete でこの関数を呼び出します。

scrollToCurrentDate(currentDate,$("#table"));

Blink エフェクトのコードは次のとおりです。

var blinkStatus=false;
var blink = function(){
        //$(".blinker").toggle();
        $(".txtBlinker").css("background-color", blinkStatus?"#CFC":"#FF4F4F");
        blinkStatus=!blinkStatus;
    };
    $(document).ready(function() {

        setInterval(blink, 1000);
    });
于 2012-08-02T01:29:27.190 に答える
0

さて、私はあなたにそれのためのコードを自分で書いて欲しいです、私はあなたにこれについていくつかのアイデアを与えることができます。

jqgridのLoadComplete関数を実装し、どの列に現在の日付があるかを確認し、その列でjqueryのfocusメソッドを呼び出します。

こんな感じになります

var Id=//現在の日付の列がある行のID。

jqueryセレクターを使用してその列を取得します。trとtdを使用すると、いくつかのIDがあり、開発者ツールでこれを確認してから、その列でjqueryのfocusメソッドを呼び出します。

または、その列に点滅効果を持たせたい場合は、

これをチェックして

http://archive.plugins.jquery.com/project/blink

さらに問題がある場合はお知らせください。

PS-それがあなたを助けたなら答えとしてそれをマークしてください。

于 2012-07-26T06:41:51.563 に答える