1

次のように、グリッドパネルで2つの行コマンドを実行しています。

<ext:CommandColumn>
   <Commands>
      <ext:GridCommand Icon="NoteEdit" CommandName="mailEdit">
          <ToolTip Text="Edit" />
      </ext:GridCommand>
      <ext:GridCommand Icon="ApplicationLightning" CommandName="mailChangeBlock">
           <ToolTip Text="block/unblock" />
      </ext:GridCommand>                               
   </Commands>                               
</ext:CommandColumn>

今、私はこれらの行コマンドを聞きます:

<Listeners>
    <Command Handler="if(command == 'mailEdit'){mailEdit}else{mailChangeBlock}; console.log(command);"/>
</Listeners>

別の試みは次のとおりでした:

<Command Handler="(command == 'mailEdit') ? mailEdit : mailChangeBlock;" />

コンソールログは問題なく実行されますが、呼び出された関数のconsole.logは実行されません。各呼び出しに角かっこを追加するとすぐに関数が呼び出されますが、関数に渡されたデータは失われます。

私の質問は、どのコマンドが実行されたかを判断し、対応する関数を呼び出して、値、メタデータ、およびレコードを与えるにはどうすればよいですか?

4

1 に答える 1

0

コマンド名とその他の値を Extra Params で送信できます。

<DirectEvents>
   <Command OnEvent="GridCommand">
      <ExtraParameters>
         <ext:Parameter Name="commandname" Value="command" Mode="Raw" />
         <ext:Parameter Name="recordid" Value="record.data.id" Mode="Raw" />
      </ExtraParameters>
   </Command>
</DirectEvents>

次に、コマンドの決定をサーバー側で実行し (で定義された をcommand返す)、サーバー側スクリプトを実行できます。CommandNameCommandColumn

于 2013-02-18T11:24:11.097 に答える