5

アプリで JQGrid を使用しています。

ここでは、列の値に基づいて JqGrid 行の色を変更したいと考えています。

列の色は変更できますが、行の背景色は変更できません。

行の色を変更するために使用しているコードは次のとおりです...

loadComplete: function (data) {
    //RETRIEVE COLUMN INDEX : ISPRINTED
    var isPrintColIndex = getGridColumnIndex(jQuery("#list10_d"), 'isPrinted');

    //CHANGE COLOR OF PRINTED ARTICLES
    //NOTE : JSON FORMATs ARE DIFFERENT SO ...HERE WE ARE ADDING CONDITION
    if (data != null && data.rows != null) {
        for (var index = 0; index < data.rows.length; index++) {

            if (typeof (data.rows[index].id) === 'undefined') {
                //LOAD BY JQGRID API ITSELF
                if (data.rows[index].isPrinted == 'NO') {
                    if (data.rows[index].isPrinted == 'NO') {
                        jQuery("#list10_d").jqGrid(
                            'setCell', data.rows[index]._id_, "articleid",
                            "", {
                            'background-color': 'red'
                        });
                    }
                }
            } else {
                ///FOR FIRST LOAD : LOAD BY JSON CALL
                if (data.rows[index].cell[isPrintColIndex] == 'NO') {
                    jQuery("#list10_d").jqGrid(
                        'setCell', data.rows[index].id, "articleid", "", { 'background-color': 'red' });
                }
            }
        }
    }
}

上記のコードの変更を誰かに提案してもらえますか?行の背景色を変更できますか??

4

3 に答える 3

6

行の色 (背景色またはテキストの色) は、選択した要素 (行)に追加styleまたはclass属性を割り当てることによって定義できます。<tr>jqGrid には、グリッドの本体の塗りつぶし中にrowattrこれを行うことができるものがあります。したがって、 を使用すると、最高のパフォーマンスが得られます。パフォーマンスの向上を確認するために使用する必要があります。rowattrgridview: true

答えはあなたの問題の解決策を提供します。

ここで説明する別の方法はゆっくりとしたものであり、rowattr機能が実装されていない古いバージョンの jqGrid でのみ使用する必要があります。rowattrでの方法がより迅速に機能する理由を理解するには、 answerを読むことをお勧めします。

于 2013-01-21T13:12:16.250 に答える
1

内部

loadComplete: function (){

    var rowIds = $(grid).jqGrid('getDataIDs');
    for (i = 1; i <= rowIds.length; i++) {//iterate over each row
        rowData = $(grid).jqGrid('getRowData', i);
        //set background style if ColumnValue == true
        if (rowData['ColumnValue'] == 'true') {
            $(grid).jqGrid('setRowData', i, false, "CSSRowSTyleToApply");
        } //if
    } //for
}//loadComplete

これはあなたが探していることをするはずです。行内の値に基づいて行に色を付けたい場合は、現在の行情報が既にあるため、その値を見つけることができます。

于 2013-01-21T12:21:23.933 に答える