0

グリッドの構築に使用されるオブジェクトをこれらがどのように変更するかを確認するために、SlickGrid's editors/機能を調べていました(私が理解している限り、テーブルに加えられた変更は自動的にオブジェクトに複製されるため)。formattersdatadata

(または文字列booleansを処理する代わりに)チェックボックスとして編集およびフォーマットする方法を示す特定の例を見ていましたが、オブジェクトにレプリケートされた値に一貫性がないことに気付きました。truefalsedata

私が何を意味するかを確認するにはeffortDriven、最初の4行の列を次のように編集します
。-タスク0:触れないでください
-タスク1:チェックしてください
-タスク2:触れないでください
-タスク3:チェックしてチェックを外してください

ここに画像の説明を入力してください

次に、Firebugコンソールで、データオブジェクトにアラートを送信します。

ここに画像の説明を入力してください

effortDrivenこのフィールドで取得する値は次のとおりです 。-タスク0
-タスク1: -タスク2: -タスク3true
checked
false
(void 0)

ご覧のとおり、最初はであると想定されていたフィールドの場合、boolean最終的に4つの異なる値になります。一般的なコメントとして、ロジックformatters/editorsは視覚化をチェックするだけで、dataオブジェクトの整合性を維持することだと思いました。したがって、を使用するときにオブジェクトがどのように更新されているかを再確認することを強くお勧めします。データを想定しないでください。整合性は維持されますSlickGriddataformatters/editors)。

UIのチェックボックスを使用しながら、dataオブジェクトが2つの値を保持していることを確認するにはどうすればよいですか?boolean

4

2 に答える 2

0

CheckboxEditor次のように関数を編集しslick.editors.jsます。

this.applyValue = function (item, state) {
  //item[args.column.field] = state;  <-- remove that line, add lines below
  if (state == 'checked') {
      item[args.column.field] = true;
  } else {
      item[args.column.field] = false;  
  }
};
于 2012-07-05T10:40:48.803 に答える
0

私もこの問題を見つけました。カスタムCheckboxEditorではslick.editors.js、値のシリアライザーを変更するだけです。

function CheckboxEditor(args) {

    ...

    this.serializeValue = function () {
        return $select.attr("checked") ? true : false;
    };

    ...

}
于 2012-07-05T10:52:21.280 に答える