[OPEN] [#596] Filter menu disappears on hidden column

  1. #1

    [OPEN] [#596] Filter menu disappears on hidden column

    Hi there,

    I am using Ext.Net 2.5.2 and I add some filters on hidden columns which are dynamically add on the existing grid.
    It doesn't work. The filter menus disappear after the hidden column show.

    Code in js:
    //////////// App.grid & App.gridFilter are aready exist ////////////////////////////
                      App.grid.addColumn(
                            {
                                dataIndex: 'SHOP',
                                text: 'Shop',
                                hidden: true,
                                sortable: true
    
                            }, true
                        );
    
                            App.gridFilter.addFilter({
                                type: 'string',
                                dataIndex: 'SHOP'
                            });
    Last edited by Daniil; Nov 18, 2014 at 9:49 AM. Reason: [OPEN] [#596]
  2. #2
    Hello,

    Please provide a test case to reproduce.
  3. #3
    Thanks for your reply,

    here is the detail test case:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="prjHRMS.HRMS.Demo.test" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script type="text/javascript">
            var addHiddenColumn = function () {
                App.gridFilterTest.clearFilters();
                App.gridTest.removeAllColumns(false);
                App.gridTest.addColumn(new Ext.grid.RowNumberer({ resizable: true, locked: true, width: 30, text: 'No.' }), false);
    
                App.gridTest.addColumn(
                        {
                            dataIndex: 'TID',
                            text: 'Transition ID',
                            hidden: false
                        }, true
                    );
                App.gridFilterTest.addFilter({
                    type: 'string',
                    dataIndex: 'TID'
                });
    
                App.gridTest.addColumn(
                            {
                                dataIndex: 'HIDEVAL',
                                text: 'hidden column',
                                hidden: true
                            }, true
                        );
    
                App.gridFilterTest.addFilter({
                    type: 'string',
                    dataIndex: 'HIDEVAL'
                });
            };
    
    
            var addShownColumn = function () {
                App.gridFilterTest.clearFilters();
                App.gridTest.removeAllColumns(false);
                App.gridTest.addColumn(new Ext.grid.RowNumberer({ resizable: true, locked: true, width: 30, text: 'No.' }), false);
    
                App.gridTest.addColumn(
                        {
                            dataIndex: 'TID',
                            text: 'Transition ID',
                            hidden: false
                        }, true
                    );
                App.gridFilterTest.addFilter({
                    type: 'string',
                    dataIndex: 'TID'
                });
    
                App.gridTest.addColumn(
                        {
                            dataIndex: 'SHOWVAL',
                            text: 'shown column',
                            hidden: false
                        }, true
                    );
    
                App.gridFilterTest.addFilter({
                    type: 'string',
                    dataIndex: 'SHOWVAL'
                });
            };
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        <ext:GridPanel ID="gridTest" runat="server" Title="Testing" Icon="Time" EmptyText="No Record Found" Width="500" Height="500">
            <TopBar>
                <ext:Toolbar runat="server">
                    <Items>
                        <ext:Button ID="btAddHiddenCol" runat="server" Text="Add Hidden Column(Has filter)" Icon="Add">
                            <Listeners>
                                <Click Handler="addHiddenColumn()" />
                            </Listeners>
                        </ext:Button>
                        <ext:Button ID="btAddShownCol" runat="server" Text="Add Shown Column(Has filter)" Icon="Add">
                            <Listeners>
                                <Click Handler="addShownColumn()" />
                            </Listeners>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </TopBar>
            <Features>
                <ext:GridFilters ID="gridFilterTest" Local="true" runat="server">
                    <Filters>
                        <ext:StringFilter DataIndex="TID" />
                    </Filters>
                </ext:GridFilters>
            </Features>
            <Store>
                <ext:Store ID="storeTest" runat="server">
                    <Model>
                        <ext:Model ID="Model8" runat="server">
                            <Fields>
                                <ext:ModelField Name="TID" />
                                <ext:ModelField Name="HIDEVAL" />
                                <ext:ModelField Name="SHOWVAL" />
                            </Fields>
                        </ext:Model>
                    </Model>
                </ext:Store>
            </Store>
            <ColumnModel>
                <Columns>
                    <ext:RowNumbererColumn ID="RowNumbererColumn1" MenuDisabled="true" Text = "No." runat="server" Width="30"/>
                    <ext:Column ID="Column1" runat="server" DataIndex="TID" Text="Transition ID" >
                    </ext:Column>
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
        </form>
    </body>
    </html>
    In this case, two buttons are both adding column in existing grid but one is hidden column and other is shown column. These columns have filter. However, the filter menu disappear after the hidden column show.
  4. #4
    Thank you for the test case, I've reproduced. Created an Issue.
    https://github.com/extnet/Ext.NET/issues/596

    As a workaround I can suggest you to call .addFilter() in a show listener of the initially hidden column.

Similar Threads

  1. Replies: 1
    Last Post: Nov 10, 2014, 4:34 AM
  2. Replies: 1
    Last Post: Aug 16, 2013, 12:07 PM
  3. Replies: 1
    Last Post: Mar 20, 2013, 4:18 PM
  4. Replies: 5
    Last Post: Nov 20, 2012, 1:48 PM
  5. Replies: 2
    Last Post: Feb 22, 2012, 4:16 PM

Posting Permissions