我在网格面板上运行了两个行命令,如下所示:
<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没有被执行,即使每次调用都添加括号时调用该函数,但传递给函数的数据也会丢失
现在我的问题是,我如何确定执行了哪个命令并调用相应的函数并为其提供值,元数据和记录?
答案 0 :(得分: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
),然后执行服务器端脚本。