[CLOSED] Grid panel Paging message in case of no record

  1. #1

    [CLOSED] Grid panel Paging message in case of no record

    Hi,
    Migrated application from 1.1 to 2.5 Ext.net version. But after migration grid-panel Paging bar displays message "Page 1 of 0 ". It should be Page "Page 1 of 1" or 0 of 0 something how can we customize the size in message.
    Please refer image for more clarity !



    Thanks
    Attached Thumbnails Click image for larger version. 

Name:	No Record Paging.PNG 
Views:	28 
Size:	5.6 KB 
ID:	17261  
    Last edited by Daniil; Dec 18, 2014 at 9:12 AM. Reason: [CLOSED]
  2. #2
    Hi @Prasoon,

    I can suggest this solution, please see the PagingToolbar's Render listener.

    Example
    <%@ Page Language="C#" %>
    
    <script runat="server">
        protected void BindData(object sender, DirectEventArgs e)
        {
            this.Store1.DataSource = new object[] 
            { 
                new object[] { "test1" },
                new object[] { "test2" },
                new object[] { "test3" },
                new object[] { "test4" },
                new object[] { "test5" },
                new object[] { "test6" },
                new object[] { "test7" },
                new object[] { "test8" },
                new object[] { "test9" }
            };
    
            this.Store1.DataBind();
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Ext.NET v2 Example</title>
    
        <script>
            var onRender = function(toolbar) {
                var item = toolbar.child('#afterTextItem'),
                    originalSetText = item.setText;
    
                item.setText = function(text) {
                    if (text === Ext.String.format(toolbar.afterPageText, 0)) {
                        text = Ext.String.format(toolbar.afterPageText, 1);
                    }
    
                    originalSetText.apply(this, [text]);
                }
            };
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
    
            <ext:Button runat="server" Text="Bind data" OnDirectClick="BindData" />
    
            <ext:GridPanel ID="GridPanel1" runat="server">
                <Store>
                    <ext:Store ID="Store1" runat="server" PageSize="3">
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="test" />
                                </Fields>
                            </ext:Model>
                        </Model>
                        <Reader>
                            <ext:ArrayReader />
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column runat="server" Text="Test" DataIndex="test" />
                    </Columns>
                </ColumnModel>
                <BottomBar>
                    <ext:PagingToolbar runat="server">
                        <Listeners>
                            <Render Fn="onRender" />
                        </Listeners>
                    </ext:PagingToolbar>
                </BottomBar>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  3. #3
    We have an application build using EXT.NET 1.7 and we are upgrading to EXT.NET 2.4, we have more than 60 grid panel, the suggested solution by you need lot of time to implement, is there any other workaround or easier way?
  4. #4
    Understand. Instead of the Render handler I can suggest this override.
    Ext.toolbar.Paging.override({
        onRender: function() {
            var me = this,
                item = me.child('#afterTextItem'),
                originalSetText = item.setText;
    
            me.callParent(arguments);
    
            item.setText = function(text) {
                if (text === Ext.String.format(this.ownerCt.afterPageText, 0)) {
                    text = Ext.String.format(this.ownerCt.afterPageText, 1);
                }
     
                originalSetText.apply(this, [text]);
            }
        }
    });
    Here is a full example.

    Example
    <%@ Page Language="C#" %>
      
    <script runat="server">
        protected void BindData(object sender, DirectEventArgs e)
        {
            this.Store1.DataSource = new object[] 
            { 
                new object[] { "test1" },
                new object[] { "test2" },
                new object[] { "test3" },
                new object[] { "test4" },
                new object[] { "test5" },
                new object[] { "test6" },
                new object[] { "test7" },
                new object[] { "test8" },
                new object[] { "test9" }
            };
      
            this.Store1.DataBind();
        }
    </script>
      
    <!DOCTYPE html>
      
    <html>
    <head runat="server">
        <title>Ext.NET v2 Example</title>
      
        <script>
            Ext.toolbar.Paging.override({
                onRender: function() {
                    var me = this,
                        item = me.child('#afterTextItem'),
                        originalSetText = item.setText;
     
                    me.callParent(arguments);
     
                    item.setText = function(text) {
                        if (text === Ext.String.format(this.ownerCt.afterPageText, 0)) {
                            text = Ext.String.format(this.ownerCt.afterPageText, 1);
                        }
      
                        originalSetText.apply(this, [text]);
                    }
                }
            });
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
      
            <ext:Button runat="server" Text="Bind data" OnDirectClick="BindData" />
      
            <ext:GridPanel ID="GridPanel1" runat="server">
                <Store>
                    <ext:Store ID="Store1" runat="server" PageSize="3">
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="test" />
                                </Fields>
                            </ext:Model>
                        </Model>
                        <Reader>
                            <ext:ArrayReader />
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column runat="server" Text="Test" DataIndex="test" />
                    </Columns>
                </ColumnModel>
                <BottomBar>
                    <ext:PagingToolbar runat="server" />
                </BottomBar>
            </ext:GridPanel>
        </form>
    </body>
    </html>
    Last edited by Daniil; Dec 19, 2014 at 5:08 AM.
  5. #5
    Thanks you :), its working, please mark it closed.

Similar Threads

  1. Grid panel Paging message in case of no record
    By Sangeeta in forum 2.x Help
    Replies: 2
    Last Post: Dec 30, 2014, 5:16 PM
  2. Replies: 4
    Last Post: Jul 25, 2014, 11:43 AM
  3. Missing first record in Grid Panel
    By dkroy in forum 1.x Help
    Replies: 1
    Last Post: Oct 01, 2013, 3:58 AM
  4. [CLOSED] Need ability to search combobox items by lower case or upper case
    By wisdomchuck in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Jul 23, 2012, 1:40 PM
  5. [CLOSED] How to get record count from the grid panel
    By Vasudhaika in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Jan 04, 2011, 10:09 AM

Posting Permissions