9

jqgridカスタムフォーマッターでこれを行うことにより、テキストの色を変更できます。

function YNFormatter(cellvalue, options, rowObject)
{
    var color = (cellvalue == "Y") ? "green" : "red";
    var cellHtml = "<span style='color:" + color + "' originalValue='" +
                                cellvalue + "'>" + cellvalue + "</span>";

    return cellHtml;
 }

ただし、テキストの色ではなく、セル全体の背景色を変更したいと思います。

これは可能ですか?

4

3 に答える 3

20

カスタムセルフォーマッター内で要素を使用する場合<span>は、カスタムフォーマッターから戻ることができます

return '<span class="cellWithoutBackground" style="background-color:' +
       color + ';">' + cellvalue + '</span>';

あなたのスタイルはspan.cellWithoutBackground、例えば次のように定義することができます

span.cellWithoutBackground
{
    display:block;
    background-image:none;
    margin-right:-2px;
    margin-left:-2px;
    height:14px;
    padding:4px;
}

それがどのように機能するかは、ここでライブで見ることができます: ここに画像の説明を入力してください

更新:答えは古いです。ベストプラクティスは、カスタムフォーマッタの使用法の代わりにcellattrコールバックを使用することです。colModelセルの背景色の変更は、通常、列のセル(要素)に割り当てるstyleか属性を付けるだけです。の列で定義されたコールバックは、これを正確に実行できるようにします。、などの事前定義されたフォーマッタを引き続き使用できますが、列の背景色を変更することもできます。同様に、コールバックは、jqGridオプション(の特定の列の外側)として定義でき、行全体(要素)のスタイル/クラスを割り当てることができます。class<td>cellattrcolModelformatter: "checkbox"formatter: "currency"formatter: "date"rowattrcolModel<tr>

についての詳細は、たとえば、ここここcellattrにあります。別の答えは説明します。rowattr

于 2011-02-12T23:43:12.730 に答える
1

これが私がしたことです:

jQuery("#grid_id").jqGrid({
    ...
       colModel: [
          ...
          {name:'price', index:'price', width:60, align:"center", editable: true, formatter:myFmatter},
          ...
       ],
        afterInsertRow: function(rowId, data)
        {
            $("#grid_id").setCell(rowId, 'price', '', {'background-color':'#' + data.colorHEX});
        }
...
});
于 2011-01-01T19:44:34.990 に答える
0

ここ

$("#cell").setCell(Row , Column, Value, { background: '#888888'});

実際には、色を設定するためだけにカスタムフォーマッタを使用する場合は、カスタムフォーマッタも必要ありません。ここから、次のように色の値を設定することもできます。

var color = (Value == "Y") ? "green" : "red";
$("#cell").setCell(Row , Column, Value, { background: '#888888', color: color});

ハッピーコーディング。

于 2010-07-14T09:41:08.770 に答える