Reload grid and paging toolbar

  1. #1

    Reload grid and paging toolbar

    *I have a gridpanel with remote paging toolbar. *There's a button on a toolbar to return grid with a different set of data (different number of pages). *How do I reload the grid during that button's AjaxEvent and reset the paging toolbar?*
  2. #2

    RE: Reload grid and paging toolbar

    Hi jchau,

    Can you post your scenario rebind a data?
    I made small sample and it seems works well
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        protected static object[] Source29
        {
            get
            {
                return new object[]
                           {
                               new object[] {"3m Co", 71.72, 0.02, 0.03, "9/1 12:00am"},
                               new object[] {"Alcoa Inc", 29.01, 0.42, 1.47, "9/1 12:00am"},
                               new object[] {"Altria Group Inc", 83.81, 0.28, 0.34, "9/1 12:00am"},
                               new object[] {"American Express Company", 52.55, 0.01, 0.02, "9/1 12:00am"},
                               new object[] {"American International Group, Inc.", 64.13, 0.31, 0.49, "9/1 12:00am"},
                               new object[] {"AT&amp;T Inc.", 31.61, -0.48, -1.54, "9/1 12:00am"},
                               new object[] {"Boeing Co.", 75.43, 0.53, 0.71, "9/1 12:00am"},
                               new object[] {"Caterpillar Inc.", 67.27, 0.92, 1.39, "9/1 12:00am"},
                               new object[] {"Citigroup, Inc.", 49.37, 0.02, 0.04, "9/1 12:00am"},
                               new object[] {"E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, "9/1 12:00am"},
                               new object[] {"Exxon Mobil Corp", 68.1, -0.43, -0.64, "9/1 12:00am"},
                               new object[] {"General Electric Company", 34.14, -0.08, -0.23, "9/1 12:00am"},
                               new object[] {"General Motors Corporation", 30.27, 1.09, 3.74, "9/1 12:00am"},
                               new object[] {"Hewlett-Packard Co.", 36.53, -0.03, -0.08, "9/1 12:00am"},
                               new object[] {"Honeywell Intl Inc", 38.77, 0.05, 0.13, "9/1 12:00am"},
                               new object[] {"Intel Corporation", 19.88, 0.31, 1.58, "9/1 12:00am"},
                               new object[] {"International Business Machines", 81.41, 0.44, 0.54, "9/1 12:00am"},
                               new object[] {"Johnson &amp; Johnson", 64.72, 0.06, 0.09, "9/1 12:00am"},
                               new object[] {"JP Morgan &amp; Chase &amp; Co", 45.73, 0.07, 0.15, "9/1 12:00am"},
                               new object[] {"McDonald\"s Corporation", 36.76, 0.86, 2.40, "9/1 12:00am"},
                               new object[] {"Merck &amp; Co., Inc.", 40.96, 0.41, 1.01, "9/1 12:00am"},
                               new object[] {"Microsoft Corporation", 25.84, 0.14, 0.54, "9/1 12:00am"},
                               new object[] {"Pfizer Inc", 27.96, 0.4, 1.45, "9/1 12:00am"},
                               new object[] {"The Coca-Cola Company", 45.07, 0.26, 0.58, "9/1 12:00am"},
                               new object[] {"The Home Depot, Inc.", 34.64, 0.35, 1.02, "9/1 12:00am"},
                               new object[] {"The Procter &amp; Gamble Company", 61.91, 0.01, 0.02, "9/1 12:00am"},
                               new object[] {"United Technologies Corporation", 63.26, 0.55, 0.88, "9/1 12:00am"},
                               new object[] {"Verizon Communications", 35.57, 0.39, 1.11, "9/1 12:00am"},
                               new object[] {"Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, "9/1 12:00am"}
                           };
            }
        }
    
        protected static object[] Source15
        {
            get
            {
                object[] data = new object[15];
                for (int i = 0; i < 15; i++)
                {
                    data[i] = Source29[i];
                }
    
                return data;
            }
        }
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Ext.IsAjaxRequest)
            {
                this.Store1.DataSource = Source29;
                this.Store1.DataBind();
            }
        }
    
        protected void NewData(object sender, AjaxEventArgs e)
        {
            this.Store1.DataSource = Source15;
            this.Store1.DataBind();
    
            Pager1.PageIndex = 0;
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <ext:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug" />
            
            <ext:Store ID="Store1" runat="server">
                <Reader>
                    <ext:ArrayReader>
                        <Fields>
                            <ext:RecordField Name="company" />
                            <ext:RecordField Name="price" Type="Float" />
                            <ext:RecordField Name="change" Type="Float" />    
                        </Fields>
                    </ext:ArrayReader>
                </Reader>
            </ext:Store>
            
            <ext:GridPanel 
                ID="GridPanel1" 
                runat="server" 
                StoreID="Store1" 
                StripeRows="true"
                Title="Array Grid" 
                TrackMouseOver="true"
                Width="600" 
                Height="350"
                AutoExpandColumn="Company">
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column ColumnID="Company" Header="Company" Width="160" Sortable="true" DataIndex="company" />
                        <ext:Column Header="Price" Width="75" Sortable="true" DataIndex="price">
                            <Renderer Format="UsMoney" />
                        </ext:Column>
                        <ext:Column Header="Change" Width="75" Sortable="true" DataIndex="change">
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
                </SelectionModel>
                
                <BottomBar>
                    <ext:PagingToolbar ID="Pager1" runat="server" PageSize="5">                    
                    </ext:PagingToolbar>
                </BottomBar>
                
                <TopBar>
                    <ext:Toolbar ID="Toolbar1" runat="server">
                        <Items>
                            <ext:ToolbarFill />
                            <ext:ToolbarButton ID="ToolbarButton1" runat="server"
                                 Text="New data">
                                 <AjaxEvents>
                                    <Click OnEvent="NewData" Single="true"></Click>
                                 </AjaxEvents>
                            </ext:ToolbarButton>
                        </Items>
                    </ext:Toolbar>
                </TopBar>
            </ext:GridPanel>  
        </form>
    </body>
    </html>

  3. #3

    RE: Reload grid and paging toolbar

    *Thanks! *That worked well. *How would I do the same on the clientside? *On a tree node click, i do a grid.reload() with javascript. *It doesn't reset the pager or reset current selection. *Shouldn't reload automatically take care of those issues?
  4. #4

    RE: Reload grid and paging toolbar

    Hi,

    It is not always possible to automatically drop pager because not always enough information that page index is incorrect. It is possible with PagingMemoryProxy but not with other proxy. So, I am recomending to drop page index manually - on server side (as in example) or on client side:


    PagingToolbar1.cursor = 0;
    Store1.reload();




Similar Threads

  1. Replies: 11
    Last Post: Jun 13, 2012, 4:53 PM
  2. Replies: 6
    Last Post: Jul 13, 2011, 6:45 PM
  3. Replies: 2
    Last Post: Feb 25, 2011, 1:21 PM
  4. Replies: 2
    Last Post: Apr 20, 2010, 1:50 PM
  5. [CLOSED] Paging Toolbar with Grid
    By speedstepmem2 in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Dec 23, 2009, 3:08 AM

Posting Permissions