0

列セクションのテンプレート内にいくつかの剣道ロジックと変数を含めることができることに気付きました。

これは、私の列セクション テンプレートの例です。

  template: "#= myVariable#  #if(myBoolean) {# <img src='/images/myImage.png' /> #}#"

myVariable と myBoolean は、グリッドの各行の変数 (フィールド) であることに注意してください。残念ながら、テンプレートのコマンドセクションで同じことを試しました。「ReferenceError: myVariable が定義されていません」というエラーが表示されます。

列で発生するように、コマンド セクションに変数を追加する方法はありますか?

4

1 に答える 1

0

私の知る限り、でテンプレートを使用することcolumns.commandは文書化されていません:それは機能しますが。そして、あなたは次のようなことをすることができます:

columns   : [
    {
        command: {
            template : "# console.log('this', this); console.log('data', data); # toto"
        }
    },
    ...
]

またはのように:

command: {
    template : function (arg) {
        console.log("this" ,this);
        console.log("arg", arg);
        console.log("data", data);
        return "toto";
    }
}

ただし、テンプレートが返すものはである必要がstringあり、ブラウザのコンソールにthiswindowargがオブジェクトcommanddataあり、arrayグリッドデータが含まれていることがわかります。

次のように追加の引数を含めることができますが、

command: {
    template : function (arg) {
        console.log("this" ,this);
        console.log("arg", arg);
        console.log("arg.a", arg.a);
        console.log("data", data);
        return "toto";
    },
    a: "extra argument"
}

aあなたを介してアクセスできる追加の引数を追加すると、要素がまだ挿入されていないため、arg.a現在の行にアクセスできません。data

その代わりに、私が提案するのは次のようなことです。

columns   : [
    {
        title: " ",
        template: "#= myVariable#  #if(myBoolean) {# <img src='/images/myImage.png' /> #}#"
    },
    ...
]

コマンドとして持っている必要はありませんよね?なぜコマンドとして必要なのですか?

于 2013-03-14T17:56:10.653 に答える