Hmm, something doesn't work.
The Prepare Script shows the Command Name (command.command) correctly, but the refreshRow Script has no Command Name
var refreshRow = function (grid, command, record, row) {
alert("Refresh " + command.command + " Record id : " + record.id);
command.hidden = !grid.getSelectionModel().isSelected(record);
};
Output : Refresh undefined Record id : 85604422-a0c1-44f4-8e28-9b7b549f5799
That's my Markup
<ext:GridPanel runat="server" ID="gridBordereau" StripeRows="true" StoreID="storeBordereau" TrackMouseOver="true" Margins="0 0 5 5" Layout="Fit" AutoExpandColumn="InternalNote" MaskDisabled="False">
<ColumnModel runat="server">
<Columns>
<ext:Column ColumnID="BordereauId" Header="BordereauId" Width="75" Hidden="true" DataIndex="BordereauId" Editable="False" Groupable="False" Sortable="False" MenuDisabled="True" />
<ext:Column ColumnID="BordereauNumber" Header='<%$ I18n: Caption.BordereauNumber %>' Width="150" Hidden="False" DataIndex="BordereauNumber" Editable="False" Groupable="true" Sortable="true" MenuDisabled="false" />
<ext:Column ColumnID="InvoiceDate" Header='<%$ I18n: Caption.InvoiceDate %>' Width="150" Hidden="False" DataIndex="InvoiceDate" Editable="False" Groupable="true" Sortable="true" MenuDisabled="false" />
<ext:Column ColumnID="InternalNote" Header='<%$ I18n: Caption.InternalNote %>' Width="75" Hidden="False" DataIndex="InternalNote" Editable="False" Groupable="true" Sortable="true" MenuDisabled="false" />
<ext:ImageCommandColumn Width="80" Align="Center" Resizable="False">
<Commands>
<ext:ImageCommand CommandName="ExchnageModeMail" Icon="Mail">
<ToolTip Text='<%$ I18n: ToolTip.Mail %>' />
</ext:ImageCommand>
</Commands>
<Commands>
<ext:ImageCommand CommandName="ExchnageModePrint" Icon="Printer">
<ToolTip Text='<%$ I18n: ToolTip.Print %>' />
</ext:ImageCommand>
</Commands>
<Commands>
<ext:ImageCommand CommandName="ExchnageModeFile" Icon="Disk">
<ToolTip Text='<%$ I18n: ToolTip.Save %>' />
</ext:ImageCommand>
</Commands>
<PrepareCommand Fn="prepareCommand" />
</ext:ImageCommandColumn>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
<Listeners>
<RowSelect Fn="refreshRow" />
<RowDeselect Fn="refreshRow" />
</Listeners>
</ext:RowSelectionModel>
</SelectionModel>
<DirectEvents>
<Command OnEvent="HandleGridCommand">
<EventMask ShowMask="true" />
<ExtraParams>
<ext:Parameter Name="CommandName" Value="command" Mode="Raw" />
<ext:Parameter Name="Values" Value="Ext.encode(#{gridBordereau}.getRowsValues({selectedOnly : true}))" Mode="Raw" />
</ExtraParams>
</Command>
</DirectEvents>
<TopBar>
<ext:Toolbar runat="Server" ID="MainToolBar" EnableOverflow="true">
<Items>
<%--Show by CustomsAccount--%>
<ext:Button ID="cmdAccountSelect" runat="server" Text='<%$ I18n: Action.SelectCustomsAccount %>' Icon="Book">
<Menu>
<ext:Menu ID="mnuSelectAccount" runat="server">
<Items>
<ext:GridPanel runat="server" ID="GridPanel1" StoreID="storeAccounts" AutoExpandColumn="AccountName" StripeRows="true" TrackMouseOver="true" Margins="0 0 5 5" Layout="Fit" HideHeaders="True" Width="250" Height="120">
<ColumnModel runat="server">
<Columns>
<ext:Column ColumnID="accountId" Width="5" Hidden="true" DataIndex="Id" Editable="False" Groupable="False" Sortable="False" MenuDisabled="True" />
<ext:Column ColumnID="AccountNumber" Width="40" DataIndex="AccountNumber" Editable="False" Groupable="False" Sortable="False" MenuDisabled="True" />
<ext:Column ColumnID="AccountName" Width="180" DataIndex="AccountName" Editable="False" Groupable="False" Sortable="False" MenuDisabled="True" />
<ext:Column ColumnID="HasBordereauData" Width="150" DataIndex="HasBordereauData" Hidden="true" Editable="False" Groupable="False" Sortable="False" MenuDisabled="True" />
<ext:ImageCommandColumn Width="25" ColumnID="commandColApproved" Fixed="True" Editable="False" Groupable="False" Resizable="False" Sortable="False">
<Commands>
<ext:ImageCommand CommandName="cmdNewNoBordereau">
<ToolTip Text='<%$ I18n: Tooltip.HasNoNewBordereau %>' />
</ext:ImageCommand>
<ext:ImageCommand CommandName="cmdNewBordereau" Icon="New">
<ToolTip Text='<%$ I18n: Tooltip.HasNewBordereau %>' />
</ext:ImageCommand>
</Commands>
<PrepareCommand Fn="prepareNewBordereauState" />
</ext:ImageCommandColumn>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel2" runat="server" SingleSelect="true">
<DirectEvents>
<RowSelect>
<EventMask ShowMask="true" />
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{gridAccount}.getRowsValues({selectedOnly : true}))" Mode="Raw" />
</ExtraParams>
</RowSelect>
</DirectEvents>
</ext:RowSelectionModel>
</SelectionModel>
<BottomBar>
<ext:Toolbar runat="server" ID="toolBarAccounts">
<Items>
<ext:Button runat="server" ID="cmdSelectAccount" Text='<%$ I18n: Action.SelectCustomsAccountSelect %>' Icon="Accept">
<DirectEvents>
<Click OnEvent="cmdSelectAccountClick">
<ext:EventMask ShowMask="true" />
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{gridAccount}.getRowsValues({selectedOnly : true}))" Mode="Raw" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</BottomBar>
</ext:GridPanel>
</Items>
</ext:Menu>
</Menu>
</ext:Button>
<ext:Label runat="server" ID="lblCurrentAccount" />
</Items>
</ext:Toolbar>
</TopBar>
</ext:GridPanel>
and that's my script
var prepareCommand = function (grid, command, record, row) {
//alert("Hide : " + command.command + " Record id : " + record.id);
command.hidden = !grid.getSelectionModel().isSelected(record);
};
var refreshRow = function (grid, command, record, row) {
alert("Refresh " + command.command + " Record id : " + record.id);
command.hidden = !grid.getSelectionModel().isSelected(record);
};