[CLOSED] Select only first 100 records from gridpanel with 1000 records

  1. #1

    [CLOSED] Select only first 100 records from gridpanel with 1000 records

    Hi,

    We have a gridpanel with 1000 records and paging based on 25 records in a page.
    I want to retrieve only first 100 records from the grid.

    How can we achieve this?

    Regards,
  2. #2

    RE: [CLOSED] Select only first 100 records from gridpanel with 1000 records

    Hello, Harry_CSC!

    We can retrieve some records from the grid by using the following code. Please look at the retrieveButtonClick function in this example:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Select only first 100 records from gridpanel.aspx.cs" Inherits="Work.Premium_help.Select_only_first_100_records_from_gridpanel" %>
    
    <%@ Import Namespace="System.Xml" %>
    
    <%@ 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">
    
    <script runat="server">
        private object[] TestData
        {
            get
            {
                DateTime now = DateTime.Now;
                
                return new object[]
                {
                    new object[] { "3m Co", 71.72, 0.02, 0.03, now },
                    new object[] { "Alcoa Inc", 29.01, 0.42, 1.47, now },
                    new object[] { "Altria Group Inc", 83.81, 0.28, 0.34, now },
                    new object[] { "American Express Company", 52.55, 0.01, 0.02, now },
                    new object[] { "American International Group, Inc.", 64.13, 0.31, 0.49, now },
                    new object[] { "AT&amp;T Inc.", 31.61, -0.48, -1.54, now },
                    new object[] { "Boeing Co.", 75.43, 0.53, 0.71, now },
                    new object[] { "Caterpillar Inc.", 67.27, 0.92, 1.39, now },
                    new object[] { "Citigroup, Inc.", 49.37, 0.02, 0.04, now },
                    new object[] { "E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, now },
                    new object[] { "Exxon Mobil Corp", 68.1, -0.43, -0.64, now },
                    new object[] { "General Electric Company", 34.14, -0.08, -0.23, now },
                    new object[] { "Government Motors Corporation", 30.27, 1.09, 3.74, now },
                    new object[] { "Hewlett-Packard Co.", 36.53, -0.03, -0.08, now },
                    new object[] { "Honeywell Intl Inc", 38.77, 0.05, 0.13, now },
                    new object[] { "Intel Corporation", 19.88, 0.31, 1.58, now },
                    new object[] { "International Business Machines", 81.41, 0.44, 0.54, now },
                    new object[] { "Johnson &amp; Johnson", 64.72, 0.06, 0.09, now },
                    new object[] { "JP Morgan &amp; Chase &amp; Co", 45.73, 0.07, 0.15, now },
                    new object[] { "McDonald\"s Corporation", 36.76, 0.86, 2.40, now },
                    new object[] { "Merck &amp; Co., Inc.", 40.96, 0.41, 1.01, now },
                    new object[] { "Microsoft Corporation", 25.84, 0.14, 0.54, now },
                    new object[] { "Pfizer Inc", 27.96, 0.4, 1.45, now },
                    new object[] { "The Coca-Cola Company", 45.07, 0.26, 0.58, now },
                    new object[] { "The Home Depot, Inc.", 34.64, 0.35, 1.02, now },
                    new object[] { "The Procter &amp; Gamble Company", 61.91, 0.01, 0.02, now },
                    new object[] { "United Technologies Corporation", 63.26, 0.55, 0.88, now },
                    new object[] { "Verizon Communications", 35.57, 0.39, 1.11, now },
                    new object[] { "Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, now }
                };
            }
        }
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                this.Store1.DataSource = this.TestData;
                this.Store1.DataBind(); 
            }
        }
    
        protected void MyData_Refresh(object sender, StoreRefreshDataEventArgs e)
        {
            this.Store1.DataSource = this.TestData;
            this.Store1.DataBind(); 
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
        <script type="text/javascript">
            var retrieveButtonClick = function(store) {
                Ext.Msg.alert("Attention", "Here you can retrieve as many records from the store as you need.</br>" +
                    + "Just use the following code: store.allData.items[someIndex].data;");
            }
        </script>
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" />
            
            <ext:Store 
                ID="Store1"
                runat="server" 
                SkipIdForNewRecords="false" 
                RemoteSort="false"
                RefreshAfterSaving="None"
                OnRefreshData="MyData_Refresh">
                <Reader>
                    <ext:ArrayReader IDProperty="company">
                        <Fields>
                            <ext:RecordField Name="company" />
                            <ext:RecordField Name="price" Type="Float" />
                            <ext:RecordField Name="change" Type="Float" />
                            <ext:RecordField Name="pctChange" Type="Float" />
                            <ext:RecordField Name="lastChange" Type="Date" DateFormat="yyyy-MM-ddTHH:mm:ss" />
                        </Fields>
                    </ext:ArrayReader>
                </Reader>            
            </ext:Store>
            
            <ext:GridPanel ID="GridPanel1" 
                runat="server" 
                StoreID="Store1" 
                StripeRows="true"
                Title="Array Grid" 
                Width="600" 
                Height="300"
                AutoExpandColumn="Company">
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column ColumnID="Company" Header="Company" Width="160" DataIndex="company"/>
                        <ext:Column Header="Price" Width="75" DataIndex="price"/>
                        <ext:Column Header="Change" Width="75" DataIndex="change" />
                        <ext:Column Header="Change" Width="75" DataIndex="pctChange" />
                        <ext:DateColumn Header="Last Updated" Width="85" DataIndex="lastChange" Format="HH:mm:ss" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
                </SelectionModel>
                <LoadMask ShowMask="true" />
                <BottomBar>
                    <ext:PagingToolbar ID="PagingToolbar1" runat="server" PageSize="10" />
                </BottomBar>
                <TopBar>
                    <ext:Toolbar ID="Toolbar1" runat="server">
                        <Items> 
                            <ext:Button runat="server" Text="Retrieve 20 records" Icon="Accept">
                                <Listeners>
                                    <Click Handler="retrieveButtonClick(#{Store1});"/>
                                </Listeners>
                            </ext:Button>                          
                        </Items>
                    </ext:Toolbar>
                </TopBar>
            </ext:GridPanel>  
        </form>
    </body>
    </html>
    It's for retrieving records on a client-side.

    When it deals with retrieving on a server side (as example, by using the DirectEvents) it's a little bit more difficult. The Store.DataSource is not saved in ViewState. So, we have to create the DataSource for each request or we can use the cache to store this. To see the example please follow the link. There is the similar situation.
    http://forums.ext.net/showthread.php...5365-16-2.aspx
  3. #3

    RE: [CLOSED] Select only first 100 records from gridpanel with 1000 records

    Hi,

    I am using 0.8 coolite.
    What is equivalent of store.allData in 0.8?
    Please this is urgent..

    Regards,
  4. #4

    RE: [CLOSED] Select only first 100 records from gridpanel with 1000 records

    Hi,

    What exactly version do you use? 0.8.0 or 0.8.2?

    'allData' is available with 0.8.2 also
    Here is 0.8.2 sample
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Collections.Generic" %>
    <%@ 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 void Page_Load(object sender, EventArgs e)
        {
            List<object> data = new List<object>(100);
            for (int i = 0; i < 100; i++)
            {
                data.Add(new { FieldName = "Cell_"+i });
            }
    
            this.Store1.DataSource = data;
            this.Store1.DataBind();
        }   
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
        
        <script type="text/javascript">
            function type30(){
                Ext.each(Store1.getAllRange(0, 29), function(record){
                    Ext.DomHelper.append(Ext.getBody(), {html:record.data.FieldName, tag:'p'});
                });
            }
        </script>
    </head>
    <body>
        <ext:ScriptManager ID="ScriptManager1" runat="server" />
       
        <ext:Store ID="Store1" runat="server">
            <Reader>
                <ext:JsonReader>
                    <Fields>
                        <ext:RecordField Name="FieldName" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
            
            <AutoLoadParams>
                <ext:Parameter Name="start" Value="0" Mode="Raw" />
                <ext:Parameter Name="limit" Value="10" Mode="Raw" />
            </AutoLoadParams>
        </ext:Store>
        
        <ext:GridPanel 
            ID="GridPanel1" 
            runat="server" 
            StoreID="Store1" 
            StripeRows="true"
            Title="Company List" 
            Width="600" 
            Height="350"
            >
            <ColumnModel ID="ColumnModel1" runat="server">
                <Columns>
                    <ext:Column Header="FieldName" Width="160" DataIndex="FieldName" />
                </Columns>
            </ColumnModel>
            
            <BottomBar>
                <ext:PagingToolbar runat="server" PageSize="10" />
            </BottomBar>
            <Buttons>
                <ext:Button runat="server" Text="Type first 30 records">
                    <Listeners>
                        <Click Fn="type30" />
                    </Listeners>
                </ext:Button>
            </Buttons>
        </ext:GridPanel>
    </body>
    </html>
    Why don't you want to retrieve required data from the server side? Just read first 100 records from the server side storage (storage which you use to bind the store)

Similar Threads

  1. Replies: 5
    Last Post: Jun 14, 2011, 11:47 AM
  2. Replies: 20
    Last Post: Dec 16, 2010, 11:02 AM
  3. Add Records in GridPanel
    By Rupesh in forum 1.x Help
    Replies: 0
    Last Post: Nov 12, 2010, 12:45 PM
  4. insert records in gridpanel
    By pankaj in forum 1.x Help
    Replies: 0
    Last Post: Apr 01, 2010, 5:53 AM
  5. [CLOSED] get gridpanel all records
    By speedstepmem4 in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Dec 11, 2008, 6:27 AM

Posting Permissions