ホームページ >ウェブフロントエンド >jsチュートリアル >チェックボックスのステータスに基づいて JqGrid 内の行を強調表示する方法は?

チェックボックスのステータスに基づいて JqGrid 内の行を強調表示する方法は?

DDD
DDDオリジナル
2024-11-07 10:49:02911ブラウズ

How to Highlight Rows in a JqGrid Based on Checkbox Status?

チェックボックスが True の場合に行を強調表示

jqGrid プロジェクトでは、チェックボックスのステータスに基づいて行を強調表示することを目的としています。

Rowattr コールバック

jqGrid のバージョン 4.3.2 では、rowattr コールバックが導入され、グリッドの塗りつぶしプロセス中に行にカスタム属性を追加できるようになります。これは行の強調表示に適したアプローチです。

rowattr: function (rd) {
    if (rd.GroupHeader === "1") { // Verify this logic based on your data structure
        return {"class": "myAltRowClass"};
    }
}

強調表示用の CSS クラス

強調表示された行の背景色を設定する CSS クラス myAltRowClass を定義します。

複数選択とグリッドビュー

行を選択せず​​に行を強調表示する場合は、multiselect: true を省略します。パフォーマンスを向上させるには、gridview: true を有効にします。

列テンプレートの使用

コードを合理化するには、列テンプレートを利用できます:

cmTemplate

cmTemplate: {align: 'center', sortable: false, editable: true, width: 80}

カスタム テンプレート

よく使用されるプロパティのカスタム テンプレートを作成します:

var myCheckboxTemplate = {
    formatter: 'checkbox',
    edittype: 'checkbox',
    type: 'select',
    editoptions: {value: "1:0"}
};

var myTextareaTemplate = {
    edittype: "textarea",
    editoptions: {size: "30", maxlength: "30"}
};

最適化されたcolModel

colModel: [
    {name: 'TypeID', index: 'TypeID', width: 350, hidden: true, edittype: "select",
        editoptions: {value: getTypeID()}, editrules: { edithidden: true}},
    {name: 'Order1', index: 'Order1', template: myTextareaTemplate},
    {name: 'Order2', index: 'Order2', template: myTextareaTemplate},
    {name: 'Order3', index: 'Order3', template: myTextareaTemplate},
    {name: 'Description', index: 'Description', width: 140, template: myTextareaTemplate},
    {name: 'Notes', index: 'Notes', width: 120, template: myTextareaTemplate},
    {name: 'Measure', index: 'Measure', template: myTextareaTemplate},
    {name: 'UnitPrice', index: 'UnitPrice', width: 100, editable: false, template: myTextareaTemplate},
    {name: 'Remarks', index: 'Remarks', width: 140, template: myTextareaTemplate},
    {name: 'UnitCost', index: 'UnitCost', width: 100, template: myTextareaTemplate},
    {name: 'Service', index: 'Service', width: 120, template: myTextareaTemplate},
    //If the GroupHeader is true the row background is yellow
    {name: 'GroupHeader', index: 'GroupHeader', width: 100, template: myCheckboxTemplate},
    {name: 'IsGroup', index: 'IsGroup', template: myCheckboxTemplate}
],
cmTemplate: {align: 'center', sortable: false, editable: true, width: 80}

以上がチェックボックスのステータスに基づいて JqGrid 内の行を強調表示する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。