フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援
フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援

Railsで remote: true と js.erbを使って簡単にAjax(非同期通信)を実装しよう!(いいね機能のデモ付)

JQGRID使用方法

Jqgridバージョン:v5.3.0

セルの属性値を設定したいとき

ある特定の値の時に文字色を赤色にしたい。背景色を変更したいという要望がると思います。
こういったときに使用するのが、「cellattr」です。

サンプル1(文字を赤に変更)

では、サンプルを見ていきます。
ここでは、rowIdが20のときのみcityの文字色を赤色にしています。

$(document).ready(function () {
    "use strict";
    var mydata = [
            {rowId: "10",  pref: "大阪府",  city: "大阪市"},
            {rowId: "20",  pref: "兵庫県", city: "加古川市"},
            {rowId: "30",  pref: "山梨県", city: "甲府市"},
            {rowId: "40",  pref: "北海道", city: "札幌市"},
            {rowId: "50",  pref: "沖縄県", city: "那覇市"},
        ];
    var $grid = $("#list");
    $grid.jqGrid({
        datatype: "local",
        data: mydata,
        colNames: ["ID", "都道府県名", "都市名"],
        colModel: [
            {name: "rowId", width: 70},
            {name: "pref", width: 70},
            {
                name: "city",
                width: 70,
                cellattr: function(rowId, value, rawObject, cm, rdata) {
                    // rowId:行ID
                    // value:セルの表示する予定の値(formatterで編集された値)
                    // rawObject:編集していない行のオブジェクト
                    // cm:対象のカラムのカラムモデル
                    // rdata:行のオブジェクト
                    if (rawObject.rowId === "20") {
                        return "style='color: blue' title='テスト' class='aaa'";
                    }
                    return "";
                },
            },
        ],
        height: "auto",
        width: 500,
    });
});

サンプル1(画面)

サンプル画面_cellattr.JPG

この方法で、特定の条件の時にセルの属性を設定することができます。
styleを記述することができますし、title, classも同様に設定できます。
ただし、注意しないといけないのは、文字列で返却しないといけない点です。
Object形式で返却しても属性は反映されません。

コメント

記事に戻る

コメントを残す