1

我在网格面板上运行了两个行命令,如下所示:

<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返回中CommandName定义的CommandColumn),然后执行服务器端脚本。

于 2013-02-18T11:24:11.097 回答