2

わかりました。私のシナリオをより明確に説明しましょう。

セルを編集すると、「ダーティ」になり、JavaScriptを介してセルにCSSクラスを追加することで、特定の方法でスタイルを設定します。

次に、ユーザーがグリッドを並べ替えると、スタイルが失われ(すべての行が再作成されるためだと思います)、並べ替え後にスタイルを適切なセル/行に復元する方法が必要です。

私がやろうとしたのは、'status'というエントリをdata[]に追加し、onCellChangeがdata []をループして、args.item.Idをdata[]の適切なエントリに一致させることです。

grid.onCellChange.subscribe(function (e, args) {
    var done = false;
    for (var i = 0; i < data.length && !done; i++) {
        if (data[i].id == args.item.id) {
            data[i].status = "dirty";
            done = true;
        }
    }
}

ただし、onSortでは、並べ替えられた行をデータ配列に一致させる方法がわかりません。(args.itemがないため)セレクターステートメント$( "。slick-row")を実行して正しいセルのスタイルを変更しようとしましたが、行をdata[]のエントリに関連付ける方法がありません。

4

1 に答える 1

3

1)onCellChangeハンドラーでアイテムを検索する必要はありません。「args.item」で入手できます。

2)「データ」配列を並べ替えても、#1の項目への変更は消去されません。

3)セルを動的にスタイリングすることに言及しました。そのためのコードはありません。カスタムフォーマッタが「item.status」を参照し、ダーティである場合は別の方法でレンダリングするコードの場合、特別なことをする必要はありません。データを並べ替えてグリッドに再レンダリングするように指示すると、「ダーティ」なセルスタイルが保持されます。

于 2011-06-16T22:50:44.463 に答える