0

次のコードを使用して、変更された値に基づいて行の背景色を設定しましたが、機能しませんでした。行の色は変更されませんでした:

        MyGrid.onCellChange.subscribe(function (e, args) 
        {
            var data = Grid.getData();

            if(data[args.row].IsDeleted == true)
            {
                 args.row.cssClasses   += 'MyBlueColor'; //Set Css Class
            }
         }

       <style type="text/css">
         .MyBlueColor
         {
             background-color: blue;
         }
        </style>
4

1 に答える 1

0

args.row行自体ではなく、行インデックスです

onCellChangeがトリガーされたときにイベント引数として渡されるものを確認してください

データ項目に基づいて行の cssClass を変更するには、getItemMetadataその行のカスタム メタデータを返すカスタム関数を実装する必要があります。これがどのように実装されているかを確認してくださいslick.groupitemmetadataprovider.js

したがって、機能することを確認するためのハックとして、関数を次のような独自のカスタム関数に置き換えることができます。getItemMetadataslick.dataview.js

function getItemMetadata(i) {
    var item = rows[i];
    if (item === undefined) {
        return null;
    }
    if (item.IsDeleted) {
        return {
            cssClasses: 'MyBlueColor'
        };
    }

    return null;
}

これは明らかに元の列定義を壊しますが、関数がどのようにgetRowMetadata機能するかを理解すれば、同様の独自のメタデータ プロバイダーを作成しslick.groupitemmetadataprovider.js、各列のカスタム メタデータを返すことさえできるはずです!

于 2013-10-30T01:35:39.647 に答える