Need help in filtering

  1. #1

    Need help in filtering

    Hi,

    Filter is not working in whole store .

    Below is the code .

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using Coolite.Ext.Web;
    
    namespace Ilogs.Coolite.Sample
    {
        public partial class Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {        
    
                if (!Ext.IsAjaxRequest)
                {
                    LoadData();
    
                }
    
                TestPagingToolbar.PageIndex = 1;
            }
    
            protected void LoadData()
            {
                ArrayReader reader = new ArrayReader { };
                reader.Fields.Add(new RecordField("Test", RecordFieldType.String));
    
                StoreTest.Reader.Add(reader);
    
                object[] testData = new object[1000];
    
                for (int i = 0; i < 1000; i++ )
                    testData[i] = new object[]{"Test "+i.ToString()};
    
                StoreTest.DataSource = testData;
                StoreTest.DataBind();
            }
        }
    }
    ================================================== ===================================

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Ilogs.Coolite.Sample.Default" %>
    
    <%@ 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">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <ext:ScriptManager ID="ScriptManager2" runat="server" Locale="de-DE" />
        <form id="form1" runat="server">
        
            <ext:Store ID="StoreTest" runat="server" >
            <AutoLoadParams>       
                    <ext:Parameter Name="start" Value="={0}" Mode="Raw" />
                    <ext:Parameter Name="limit" Value="={50}" Mode="Raw" />       
            </AutoLoadParams>
            </ext:Store>
            
            <ext:GridPanel ID="GridTest" runat="server" StoreID="StoreTest" StripeRows="true"
                TrackMouseOver="true" AutoExpandColumn="Test" AutoScroll="true" Height="500"
                Width="600">
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column ColumnID="Test" Header="Test" Sortable="true" DataIndex="Test" />
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:GridFilters runat="server" ID="grdFilterRegion" Local="true" AutoReload="true" >
                        <Filters>
                            <ext:StringFilter DataIndex="Test" />
                        </Filters>
                    </ext:GridFilters>
                </Plugins>
                <View>
                    <ext:GridView ID="GridView2" runat="server">
                        <HeaderRows>
                            <ext:HeaderRow>
                                <Columns>
                                    <ext:HeaderColumn Cls="x-small-editor">
                                        <Component>
                                            <ext:TextField ID="FilterTest" runat="server" EnableKeyEvents="true">
                                                <Listeners>
                                                    <KeyUp Handler="applyFilter();" Buffer="250" />
                                                </Listeners>
                                            </ext:TextField>
                                        </Component>
                                    </ext:HeaderColumn>
                                </Columns>
                            </ext:HeaderRow>
                        </HeaderRows>
                    </ext:GridView>
                </View>
              
                <BottomBar>
                    <ext:PagingToolbar ID="TestPagingToolbar" runat="server" StoreID="StoreTest" PageSize="100"
                        DisplayMsg="{0} - {1} von {2}" EmptyMsg="Nothing here">
                        <Items>
                        </Items>
                        <Listeners>
                            <Render Handler="this.loading.hide();" />
                        </Listeners>
                    </ext:PagingToolbar>
                </BottomBar>
            </ext:GridPanel>
            <ext:TokenScript ID="TokenScript1" runat="server">
            <script type="text/javascript">
        
                var applyFilter = function () {
               
                    var filter = getRecordFilter();               
                    StoreTest.load(StoreTest.lastOptions);
                    #{StoreTest}.clearFilter(true);                 
                    #{StoreTest}.filterBy(filter);
                               
                } 
                
                
                var filterString = function (value, dataIndex, record) {
                    if (value == "00000000-0000-0000-0000-000000000000") return true;
                    var val = record.get(dataIndex);
                    if (typeof val != "string") return value.length == 0;
                    return val.toLowerCase().indexOf(value.toLowerCase()) > -1;
                }
    
                var getRecordFilter = function () {
                    var f = [];
                   
    
                    f.push({ filter: function(record) { return filterString(#{FilterTest}.getValue(), 'Test', record); } });
    
                    var len = f.length;
                    return function(record) {
                        for (var i = 0; i < len; i++) {
                            if (!f[i].filter(record)) {
                                return false;
                            }
                        }
                        return true;
                    };
                }
            </script>
            </ext:TokenScript>
        
    
        </form>
    </body>
    </html>
  2. #2

    RE: Need help in filtering

    Hi,


    0.8.2 version can works with all grid pages (if no proxy uses in the store)
    See https://examples1.ext.net/#/GridPane...l_Data_Paging/


    For example to apply filter for whole grid


    GridPanel1.store.filterBy(function(r){return r.data.price>50;});

    GridPanel1.store.load(GridPanel1.store.lastOptions);

Similar Threads

  1. ComboBox Filtering Bug
    By amgw in forum 1.x Help
    Replies: 5
    Last Post: Nov 11, 2011, 4:57 PM
  2. File filtering
    By NishaLijo in forum 1.x Help
    Replies: 1
    Last Post: Jul 28, 2010, 11:03 PM
  3. filtering by header column
    By lordofthexings in forum 1.x Help
    Replies: 0
    Last Post: Apr 26, 2010, 11:42 AM
  4. backend filtering
    By marcmvc in forum 1.x Help
    Replies: 0
    Last Post: Nov 05, 2009, 5:06 PM
  5. [Q] Filtering time of the day?
    By plykkegaard in forum 1.x Help
    Replies: 0
    Last Post: Apr 06, 2009, 7:52 AM

Posting Permissions