Dec 07, 2013, 11:22 AM
[CLOSED] GridPanel single selection doesn't fire SelectionChange event
Hi all,
I want to alert that I experienced that in my GridPanel if I specify <ext:RowSelectionModel runat="server" Mode="Single"> the inner <SelectionChange Handler="..." is not fired when I move between cell (for example with the TAB key), viceversa, if I specify <ext:RowSelectionModel runat="server" Mode="Multi"> it works well.
Below my code:
I want to alert that I experienced that in my GridPanel if I specify <ext:RowSelectionModel runat="server" Mode="Single"> the inner <SelectionChange Handler="..." is not fired when I move between cell (for example with the TAB key), viceversa, if I specify <ext:RowSelectionModel runat="server" Mode="Multi"> it works well.
Below my code:
<ext:GridPanel ID="gridPanelUserManagement" runat="server" Header="false" Border="false">
<Store>
<ext:Store ID="storeGridPanelUserManagement" runat="server" PageSize="10"
AutomaticResponseValues="false" OnBeforeStoreChanged="BeforeChanged"
OnAfterStoreChanged="AfterChanged" OnBeforeRecordInserted="BeforeInserted"
OnBeforeRecordUpdated="BeforeUpdated" OnBeforeRecordDeleted="BeforeDeleted"
OnReadData="RefreshData">
<Model>
<ext:Model ID="gridPanelUserModel" runat="server" IDProperty="ID" Name="User">
<Fields>
<ext:ModelField Name="ID" Type="Int" />
<ext:ModelField Name="Name" Type="String" />
<ext:ModelField Name="Surname" Type="String" />
<ext:ModelField Name="Username" Type="String" />
<ext:ModelField Name="Role" Type="String" />
</Fields>
</ext:Model>
</Model>
<Sorters>
<ext:DataSorter Property="Surname" Direction="ASC" />
</Sorters>
</ext:Store>
</Store>
<ColumnModel runat="server">
<Columns>
<ext:RowNumbererColumn runat="server" Width="25" />
<ext:Column runat="server" meta:resourcekey="column_ID" DataIndex="ID" Visible="false"/>
<ext:Column runat="server" meta:resourcekey="column_name" DataIndex="Name" Sortable="true" Flex="1">
<Editor>
<ext:TextField runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column runat="server" meta:resourcekey="column_surname" DataIndex="Surname" Sortable="true" Flex="1">
<Editor>
<ext:TextField runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column runat="server" meta:resourcekey="column_username" DataIndex="Username" Sortable="true" Flex="1">
<Editor>
<ext:TextField runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column runat="server" meta:resourcekey="column_role" DataIndex="Role" Sortable="true" Flex="1">
<Editor>
<ext:ComboBox runat="server" Editable="false" SelectOnTab="true" AllowBlank="false" >
<Items>
<ext:ListItem meta:resourcekey="listItem_administrator" />
<ext:ListItem meta:resourceKey="listItem_employee" />
</Items>
</ext:ComboBox>
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:CellEditing runat="server" />
</Plugins>
<SelectionModel>
<ext:RowSelectionModel runat="server" Mode="Multi">
<Listeners>
<SelectionChange Handler="#{buttonDeleteUser}.enable();
#{buttonResetPassword}.enable();
if (#{storeGridPanelUserManagement}.getModifiedRecords().length == 0) {
#{buttonSaveUser}.disable();
} else {
#{buttonSaveUser}.enable();
}" />
</Listeners>
</ext:RowSelectionModel>
</SelectionModel>
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button ID="buttonAddUser" runat="server" meta:resourcekey="button_addUser" Icon="UserAdd">
<Listeners>
<Click Handler="var newUser = Ext.ModelManager.create({Name: 'New Name',Surname: 'New Surname',Username: 'New Username',Role: '',}, 'User');
#{storeGridPanelUserManagement}.insert(0, newUser);
#{gridPanelUserManagement}.editingPlugin.startEditByPosition({row:0, column:1});
#{buttonSaveUser}.enable()" />
</Listeners>
</ext:Button>
<ext:Button ID="buttonDeleteUser" runat="server" meta:resourcekey="button_removeUser" Icon="UserDelete" Disabled="true">
<Listeners>
<Click Handler="#{gridPanelUserManagement}.deleteSelected();
#{storeGridPanelUserManagement}.sync();
#{buttonSaveUser}.disable();
if (!#{gridPanelUserManagement}.hasSelection()) {
#{btnDelete}.disable();
}" />
</Listeners>
</ext:Button>
<ext:Button ID="buttonSaveUser" runat="server" meta:resourcekey="button_save" Icon="Disk" Disabled="true">
<Listeners>
<Click Handler="#{storeGridPanelUserManagement}.sync();
#{storeGridPanelUserManagement}.reload();
#{gridPanelUserManagement}.selModel.clearSelections();
#{buttonSaveUser}.disable();" />
</Listeners>
</ext:Button>
<ext:ToolbarFill />
<ext:Button ID="buttonResetPassword" runat="server" meta:resourcekey="button_resetPassword" Icon="UserKey" Disabled="true">
<Listeners>
<Click Handler="var selectedRow = #{gridPanelUserManagement}.getRowsValues({selectedOnly:true});
App.direct.ResetPassword(selectedRow);" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<Listeners>
<SelectionChange Handler="#{buttonDeleteUser}.setDisabled(!selected.length);#{buttonResetPassword}.setDisabled(!selected.length);" />
</Listeners>
</ext:GridPanel>
Can anyone explain me if I make some error ?
Last edited by Daniil; Dec 18, 2013 at 2:52 AM.
Reason: [CLOSED]