[OPEN] [#1156] [3.2.1] GridPanel's EmptyText vs Locked Column

  1. #1

    [OPEN] [#1156] [3.2.1] GridPanel's EmptyText vs Locked Column

    Scenario 1: GridPanel's EmptyText

    When GridPanel's EmptyText is set and no column is locked everything works as expected.

    Click image for larger version. 

Name:	ed001.jpg 
Views:	40 
Size:	3.7 KB 
ID:	24350
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <style type="text/css">
            .x-grid-empty {
                text-align: center !important;
            }
        </style>
    </head>
    <body>
        <ext:ResourceManager runat="server" Theme="Crisp" ScriptMode="Debug" />
        <ext:GridPanel Margin="20" Title="Ext.NET" EmptyText="No Data!!" Border="true" Width="400" Height="150" runat="server">
            <Listeners>
                <Render Handler="item.getView().refresh();" Delay="100" />
            </Listeners>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Text="ID" Lockable="true" DataIndex="ID" runat="server" />
                    <ext:Column Text="Name" Lockable="true" Flex="1" DataIndex="Name" runat="server" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    </body>
    </html>
    Whereas GridPanel's EmptyText is not shown when any column is locked
    Click image for larger version. 

Name:	ed002.jpg 
Views:	33 
Size:	3.4 KB 
ID:	24351
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <style type="text/css">
            .x-grid-empty {
                text-align: center !important;
            }
        </style>
    </head>
    <body>
        <ext:ResourceManager runat="server" Theme="Crisp" ScriptMode="Debug" />
        <ext:GridPanel Margin="20" Title="Ext.NET" EmptyText="No Data!!" Border="true" Width="400" Height="150" runat="server">
            <Listeners>
                <Render Handler="item.getView().refresh();" Delay="100" />
            </Listeners>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Text="ID" Locked="true" DataIndex="ID" runat="server" />
                    <ext:Column Text="Name" Lockable="true" Flex="1" DataIndex="Name" runat="server" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    </body>
    </html>


    Scenario 2: GridView's EmptyText

    When GridView's EmptyText is set and no column is locked everything works as expected.
    Click image for larger version. 

Name:	ed003.jpg 
Views:	29 
Size:	3.7 KB 
ID:	24352
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <style type="text/css">
            .x-grid-empty {
                text-align: center !important;
            }
        </style>
    </head>
    <body>
        <ext:ResourceManager runat="server" Theme="Crisp" ScriptMode="Debug" />
        <ext:GridPanel Margin="20" Title="Ext.NET" Border="true" Width="400" Height="150" runat="server">
            <View>
                <ext:GridView EmptyText="No data!!!" DeferEmptyText="false" />
            </View>
            <Listeners>
                <Render Handler="item.getView().refresh();" Delay="100" />
            </Listeners>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Text="ID" Lockable="true" DataIndex="ID" runat="server" />
                    <ext:Column Text="Name" Lockable="true" Flex="1" DataIndex="Name" runat="server" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    </body>
    </html>
    Whereas GridView's EmptyText is shown on both regions when any column is locked
    Click image for larger version. 

Name:	ed004.jpg 
Views:	34 
Size:	4.3 KB 
ID:	24353
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <style type="text/css">
            .x-grid-empty {
                text-align: center !important;
            }
        </style>
    </head>
    <body>
        <ext:ResourceManager runat="server" Theme="Crisp" ScriptMode="Debug" />
        <ext:GridPanel Margin="20" Title="Ext.NET" Border="true" Width="400" Height="150" runat="server">
            <View>
                <ext:GridView EmptyText="No data!!!" DeferEmptyText="false" />
            </View>
            <Listeners>
                <Render Handler="item.getView().refresh();" Delay="100" />
            </Listeners>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Text="ID" Locked="true" DataIndex="ID" runat="server" />
                    <ext:Column Text="Name" Lockable="true" Flex="1" DataIndex="Name" runat="server" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    </body>
    </html>


    In my opinion, in both scenarios, empty text should be shown, only once.

    Thanks in advance
    Last edited by Daniil; Dec 10, 2015 at 1:43 PM. Reason: [OPEN] [#1156] [3.2.1]
  2. #2
    Hi Raphael,

    Thank you for the report!

    Created an Issue:
    https://github.com/extnet/Ext.NET/issues/1156
  3. #3
    Hello, what about this?

    <%@ Page Language="C#" %>
    
    <!DOCTYPE html>
    
    <html>
    <head id="Head1" runat="server">
        <title></title>
        <style type="text/css">
            .x-grid-empty {
                text-align: center !important;
            }
        </style>
    </head>
    <body>
        <ext:ResourceManager runat="server" Theme="Crisp" ScriptMode="Debug" />
        <ext:GridPanel Margin="20" Title="Ext.NET" EmptyText="No Data!!" Border="true" Width="400" Height="150" runat="server">
            <Listeners>
                <Render Handler="item.getView().refresh();" Delay="100" />
            </Listeners>
            <LockedGridConfig runat="server" />
            <NormalGridConfig runat="server" EmptyText="No dataN!" />
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Text="ID" Locked="true" DataIndex="ID" runat="server" />
                    <ext:Column Text="Name" Lockable="true" Flex="1" DataIndex="Name" runat="server" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    </body>
    </html>
    Well, kind of workaround.
    Fabrício Murta
    Developer & Support Expert
  4. #4
    In my opinion, it's not good to have the option to set EmptyText on GridPanel or on GridView. In my opinion again, it seems wrong to have to set it on both GridPanel and NormalGridConfig.
  5. #5
    Based on the scenario 1, presented on post #1:

    GridPanel's EmptyText does not work as expected when GridPanel's EnableLocking is set to true.
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <style type="text/css">
            .x-grid-empty {
                text-align: center !important;
            }
        </style>
    </head>
    <body>
        <ext:ResourceManager runat="server" Theme="Crisp" ScriptMode="Debug" />
        <ext:GridPanel EnableLocking="true" EmptyText="No Data!!" Title="Ext.NET" Border="true" Width="400" Height="150" runat="server">
            <Listeners>
                <Render Handler="item.getView().refresh();" Delay="100" />
            </Listeners>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Text="ID" Lockable="true" DataIndex="ID" runat="server" />
                    <ext:Column Text="Name" Lockable="true" Flex="1" DataIndex="Name" runat="server" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    </body>
    </html>
    It works as expected when GridView's EmptyText is used instead of GridPanel's EmptyText.
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <style type="text/css">
            .x-grid-empty {
                text-align: center !important;
            }
        </style>
    </head>
    <body>
        <ext:ResourceManager runat="server" Theme="Crisp" ScriptMode="Debug" />
        <ext:GridPanel EnableLocking="true" Title="Ext.NET" Border="true" Width="400" Height="150" runat="server">
            <View>
                <ext:GridView EmptyText="No Data!!" runat="server" />
            </View>
            <Listeners>
                <Render Handler="item.getView().refresh();" Delay="100" />
            </Listeners>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Text="ID" Lockable="true" DataIndex="ID" runat="server" />
                    <ext:Column Text="Name" Lockable="true" Flex="1" DataIndex="Name" runat="server" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    </body>
    </html>
    Thanks in advance.
    Last edited by RaphaelSaldanha; May 09, 2016 at 1:39 PM.
  6. #6
    Based on feedback from Sencha, having the empty text twice in the locked and non-locked views is this way by design, and setting emptytext in the viewConfig is the expected way to set it up. So I will be changing this from bug to a feature request...

    But no, wait!

    This was the case down to ExtJS 6.2.0, now seems the bug just turned out to be even truer since ExtJS 6.2.1, reproducible in the sencha fiddle attached to the case. Up to ExtJS 6.2.0 the ViewConfig setting "works" (the way it was designed to work). Now EmptyText does not work at all both in view or grid when using locking.
    Fabrício Murta
    Developer & Support Expert

Similar Threads

  1. Replies: 3
    Last Post: Feb 04, 2015, 5:08 PM
  2. [CLOSED] GridPanel Locked Column Editor
    By ADV in forum 2.x Help
    Replies: 5
    Last Post: Mar 27, 2014, 4:46 PM
  3. Replies: 6
    Last Post: Mar 24, 2014, 7:03 AM
  4. Error/Bug Gridpanel When Column Locked
    By w0rtez in forum 2.x Help
    Replies: 1
    Last Post: Jul 22, 2013, 8:49 PM
  5. [CLOSED] Column gridPanel locked
    By tactime10 in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Sep 24, 2012, 9:17 AM

Posting Permissions