确定rowCommand颁发命令名称
问题描述:
我有类似下面的GridPanel中运行的两个命令:确定rowCommand颁发命令名称
<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没有执行ed,尽管函数一旦给每个调用添加了括号就会被调用,但是传递给该函数的数据会丢失。
我的问题是现在,我怎么能确定哪个命令被执行并调用相应的函数并给它赋值,元数据和记录?
答
有可能通过额外参数,以发送命令的名称和其他值:
<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
返回在CommandColumn
定义的CommandName
),然后执行服务器端脚本。