[CLOSED] Filter a Store on Datarange from Code Behind

  1. #1

    [CLOSED] Filter a Store on Datarange from Code Behind

    Hi all

    I need to set a Filter on a Grid Panel Store from Code Behind.
    The Filter should apply on a Date Column.

    How can I set the Store Filter to a Daterange ?

    Thanks in advance

    Peter
    Last edited by Daniil; Sep 19, 2011 at 6:22 PM. Reason: [CLOSED]
  2. #2
    Use FilterBy method of store and pass javascript method to filter client side data
  3. #3
    Quote Originally Posted by Vladimir View Post
    Use FilterBy method of store and pass javascript method to filter client side data
    Examples available ?
  4. #4
    Please see the following sample
    <%@ Page Language="C#" %>
     
    <%@ 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">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        
        <script runat="server">
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!X.IsAjaxRequest)
                {
                    var data = new System.Collections.Generic.List<object>(20);
                    for (int i = 0; i < 20; i++)
                    {
                        data.Add(new { Date = DateTime.Now.AddDays(i) });
                    }
    
    
                    Store1.DataSource = data;
                    Store1.DataBind();
                }
            }
    
    
            protected void FilterClick(object sender, DirectEventArgs e)
            {
                string fromDate = Ext.Net.Utilities.DateTimeUtils.DateNetToJs(FromDate.SelectedDate);
                string toDate = Ext.Net.Utilities.DateTimeUtils.DateNetToJs(ToDate.SelectedDate);
                Store1.FilterBy(new JFunction { Fn = string.Format("getDateFilter({0}, {1}, '{2}')", fromDate, toDate, "Date") });
            }
        </script>
        
        <script type="text/javascript">
            function getDateFilter(from, to, dataIndex){
                from = from.clearTime(true).getTime();
                to = to.clearTime(true).getTime();
                return function(record){
                    var val = record.get(dataIndex);
                        
                    if(!Ext.isDate(val)){
                        return false;
                    }
                    val = val.clearTime(true).getTime();
                    
                    if (from > val || to < val) {
                        return false;
                    }
                   
                    return true; 
                };
            }
        </script>
    </head>
    <body style="padding:20px;">
        <form id="form1" runat="server">
            <ext:ResourceManager ID="ScriptManager1" runat="server">
            </ext:ResourceManager>
            
            <ext:Container runat="server" Layout="HBoxLayout">
                <Items>
                    <ext:DateField ID="FromDate" runat="server" Note="From" />
                    <ext:DateField ID="ToDate" runat="server" Note="To" />
                    <ext:Button runat="server" Text="Filter" OnDirectClick="FilterClick" />
                </Items>
            </ext:Container>
            
            <ext:GridPanel runat="server" Width="250" AutoHeight="true">
                <Store>
                    <ext:Store ID="Store1" runat="server">
                        <Reader>
                            <ext:JsonReader>
                                <Fields>
                                    <ext:RecordField Name="Date" Type="Date" />
                                </Fields>
                            </ext:JsonReader>
                        </Reader>
                    </ext:Store>
                </Store>
                
                <ColumnModel>
                    <Columns>
                        <ext:DateColumn DataIndex="Date" Header="Date" Width="200" Format="dd/MM/yyyy" />
                    </Columns>
                </ColumnModel>
            </ext:GridPanel>
        </form>
    </body>
    </html>

Similar Threads

  1. Gridpanel + Webservice + Filter in Code behind
    By Markp11 in forum 1.x Help
    Replies: 1
    Last Post: Apr 28, 2012, 10:31 AM
  2. Replies: 2
    Last Post: Apr 12, 2012, 5:44 AM
  3. Replies: 3
    Last Post: Jul 24, 2011, 1:57 PM
  4. Slider with DataRange
    By balajichemba in forum 1.x Help
    Replies: 0
    Last Post: May 10, 2011, 1:14 AM
  5. [CLOSED] Filter store on the server (in code behind)
    By deejayns in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Dec 01, 2010, 9:19 AM

Tags for this Thread

Posting Permissions