[CLOSED] remote filter dose not be triggered?

Page 1 of 2 12 LastLast
  1. #1

    [CLOSED] remote filter dose not be triggered?

    how to trigger filter event when typing some characters in filter header input text box?
     <ext:Viewport runat="server" Layout="FitLayout">
                <Items>
                    <ext:GridPanel runat="server" Title="文章管理">
                        <TopBar>
                            <ext:Toolbar runat="server">
                                <Items>
                                    <ext:Button runat="server" Text="新增" Icon="ApplicationFormAdd">
                                        <DirectEvents>
                                            <Click OnEvent="ShowAddWindow"></Click>
                                        </DirectEvents>
                                    </ext:Button>
                                </Items>
                            </ext:Toolbar>
                        </TopBar>
                        <Store>
                            <ext:Store runat="server" ID="store1" OnReadData="LoadArticles" RemoteFilter="True"  PageSize="50">
                                <Model>
                                    <ext:Model runat="server">
                                        <Fields>
                                            <ext:ModelField Name="id"></ext:ModelField>
                                            <ext:ModelField Name="title"></ext:ModelField>
                                            <ext:ModelField Name="uid"></ext:ModelField>
                                            <ext:ModelField Name="QizUser" Type="Object"></ext:ModelField>
                                            <ext:ModelField Name="colid"></ext:ModelField>
                                            <ext:ModelField Name="QizColumn" Type="Object"></ext:ModelField>
                                            <ext:ModelField Name="addtime" Type="Date"></ext:ModelField>
                                            <ext:ModelField Name="cont"></ext:ModelField>
                                        </Fields>
                                    </ext:Model>
                                </Model>
                                <Proxy>
                                    <ext:PageProxy></ext:PageProxy>
                                </Proxy>
                            </ext:Store>
                        </Store>
                        <ColumnModel>
                            <Columns>
                                <ext:Column runat="server" DataIndex="id" Text="编号11">
                                </ext:Column>
    
                                <ext:Column runat="server" DataIndex="title" Text="标题" Flex="1">
                                    <Renderer Fn="renderArt"></Renderer>
                                </ext:Column>
                                <ext:Column runat="server" DataIndex="colid" Text="栏目">
                                    <Renderer Fn="renderColumn"></Renderer>
    
                                </ext:Column>
                                <ext:Column runat="server" DataIndex="uid" Text="作者">
                                    <Renderer Fn="renderUser"></Renderer>
                                </ext:Column>
                                <ext:DateColumn runat="server" DataIndex="addtime" Text="发表时间" Format="yyyy-MM-dd"></ext:DateColumn>
                                <ext:CommandColumn runat="server" Text="操作">
                                    <Commands>
    
                                        <ext:GridCommand Icon="NoteEdit" CommandName="Edit">
                                            <ToolTip Text="修改"></ToolTip>
                                        </ext:GridCommand>
                                        <ext:GridCommand Icon="Delete" CommandName="Delete">
                                            <ToolTip Text="删除"></ToolTip>
                                        </ext:GridCommand>
                                    </Commands>
                                    <Listeners>
                                        <Command Fn="operArt" />
                                    </Listeners>
                                </ext:CommandColumn>
                            </Columns>
                        </ColumnModel>
                        <Plugins>
                            <ext:RowExpander runat="server">
                                <Template ID="Template1" runat="server">
                                    <Html>
                                        <div style="background: #fff;">{cont}</div>
                                    </Html>
                                </Template>
                            </ext:RowExpander>
    
                        </Plugins>
                        <BottomBar>
                            <ext:PagingToolbar runat="server" StoreID="store1"></ext:PagingToolbar>
                        </BottomBar>
                        <Plugins>
                            <ext:FilterHeader ID="FilterHeader1" runat="server" Remote="true" />
                        </Plugins>
                        <SelectionModel>
                            <ext:RowSelectionModel runat="server" Mode="Multi" ID="CellSelectionModel1"></ext:RowSelectionModel>
                        </SelectionModel>
                    </ext:GridPanel>
                </Items>
            </ext:Viewport>
       protected void LoadArticles(object sender, StoreReadDataEventArgs e)
            {
                FilterHeaderConditions fhc = new FilterHeaderConditions(e.Parameters["filterheader"]);
                foreach (FilterHeaderCondition condition in fhc.Conditions)
                {
                    string dataIndex = condition.DataIndex;
                    FilterType type = condition.Type;
                    string op = condition.Operator;
                    object value = null;
    
                    switch (condition.Type)
                    {
                        case FilterType.Boolean:
                            value = condition.Value<bool>();
                            break;
    
                        case FilterType.Date:
                            switch (condition.Operator)
                            {
                                case "=":
                                    value = condition.Value<DateTime>();
                                    break;
    
                                case "compare":
                                    value = FilterHeaderComparator<DateTime>.Parse(condition.JsonValue);
                                    break;
                            }
                            break;
    
                        case FilterType.Numeric:
                            switch (condition.Operator)
                            {
                                case "=": 
                                    value = condition.Value<int>(); 
                                    break; 
                                case "compare": 
                                    value = FilterHeaderComparator<int>.Parse(condition.JsonValue); 
                                    break;
                            } 
                            break;
                        case FilterType.String:
                            value = condition.Value<string>();
                            break;
                        default:
                            throw new ArgumentOutOfRangeException();
                    }
    
                }
                int start = e.Start;
                int limt = e.Limit;
                var total = 0;
                var ll = artService.PageArts(start, limt, out total);
                // var ll = artService.PageArts1(start, limt, out total);
                e.Total = total;
                store1.DataSource = ll;
                store1.DataBind();
            }
    the LoadArticles execute when page is load , but when i type some characters on the filter's input text, the function dose not execute,what i miss sth.?
    Last edited by Daniil; Jan 18, 2014 at 3:49 AM. Reason: [CLOSED]
  2. #2
    Hi @hdsoso,

    It appears to be working here.
    https://examples2.ext.net/#/GridPane...Header/Remote/

    how to trigger filter event when typing some characters in filter header input text box?
    For any column or specific one?
  3. #3
    Quote Originally Posted by Daniil View Post
    Hi @hdsoso,

    It appears to be working here.
    https://examples2.ext.net/#/GridPane...Header/Remote/



    For any column or specific one?
    is there some thing different for all of the column or one coloumn?

    i know the example above, but i do not know what i miss sth.?
  4. #4
    Quote Originally Posted by hdsoso View Post
    is there some thing different for all of the column or one coloumn?
    Well, type for example, in the "Date" column. Filtration triggers on Enter only. Type in the "Visible" column, filtration occurs only for "true", "false", "0", "1".

    So, it depends on a type of filter.

    You can set up your own filter field in a Column's HeaderItems.
  5. #5
    Quote Originally Posted by Daniil View Post
    Well, type for example, in the "Date" column. Filtration triggers on Enter only. Type in the "Visible" column, filtration occurs only for "true", "false", "0", "1".

    So, it depends on a type of filter.

    You can set up your own filter field in a Column's HeaderItems.
    Filtration triggers on Enter only????

    i wrote a demo, why not execute when type some thing on the filter text of "name"
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm17.aspx.cs" Inherits="extdemo.test.WebForm17" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script runat="server">
            public class Student
            {
                public int id { get; set; }
                public string name { get; set; }
            }
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!X.IsAjaxRequest)
                {
                }
            }
            public void loadit(object sender, StoreReadDataEventArgs e)
            {
                FilterHeaderConditions fhc = new FilterHeaderConditions(e.Parameters["filterheader"]);
    
                foreach (FilterHeaderCondition condition in fhc.Conditions)
                {
                    string dataIndex = condition.DataIndex;
                    FilterType type = condition.Type;
                    string op = condition.Operator;
                    object value = null;
    
                    switch (condition.Type)
                    {
                        case FilterType.Boolean:
                            value = condition.Value<bool>();
                            break;
    
                        case FilterType.Date:
                            switch (condition.Operator)
                            {
                                case "=":
                                    value = condition.Value<DateTime>();
                                    break;
    
                                case "compare":
                                    value = FilterHeaderComparator<DateTime>.Parse(condition.JsonValue);
                                    break;
                            }   
                            break; 
                        case FilterType.String:
                            value = condition.Value<string>();
                            break;
                        default:
                            throw new ArgumentOutOfRangeException();
                    }
                }
                s_store.DataSource = new List<Student>
                        {
                            new Student{id=1,name="s1"},
                            new Student{id=2,name="s2"},
                            new Student{id=3,name="s3"},
                            new Student{id=4,name="s4"},
                            new Student{id=5,name="s5"},
                            new Student{id=6,name="s6"}
                        };
                s_store.DataBind();
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <ext:ResourceManager runat="server" SourceFormatting="True" RenderScripts="CDN" RenderStyles="CDN"></ext:ResourceManager>
            <ext:GridPanel runat="server">
                <Store>
                    <ext:Store runat="server" ID="s_store" OnReadData="loadit" RemoteFilter="True">
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="id"></ext:ModelField>
                                    <ext:ModelField Name="name"></ext:ModelField>
                                </Fields>
                            </ext:Model>
                        </Model>
                        <Proxy>
                            <ext:PageProxy></ext:PageProxy>
                        </Proxy>
                    </ext:Store>
                </Store>
                <ColumnModel>
                    <Columns>
                        <ext:Column runat="server" DataIndex="id" Text="id"></ext:Column>
                        <ext:Column runat="server" DataIndex="name" Text="name"></ext:Column>
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:FilterHeader ID="FilterHeader1" runat="server" Remote="true" />
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  6. #6
    Quote Originally Posted by Daniil View Post
    Well, type for example, in the "Date" column. Filtration triggers on Enter only. Type in the "Visible" column, filtration occurs only for "true", "false", "0", "1".

    So, it depends on a type of filter.

    You can set up your own filter field in a Column's HeaderItems.
    can you describe it?
    you mean for dataindex's type is string , must type string ?
    dataindex's type is Date, must type data format string?
    what's "Visible" column?
  7. #7
    Quote Originally Posted by hdsoso View Post
    can you describe it?
    you mean for dataindex's type is string , must type string ?
    dataindex's type is Date, must type data format string?
    I mean that a type of filter depends on a ModelField's Type.

    Quote Originally Posted by hdsoso View Post
    what's "Visible" column?
    The last column here:
    https://examples2.ext.net/#/GridPane...Header/Remote/
  8. #8
    Quote Originally Posted by Daniil View Post
    I mean that a type of filter depends on a ModelField's Type.



    The last column here:
    https://examples2.ext.net/#/GridPane...Header/Remote/
    I wrote a demo above , why handler not execute when i type something in filter input?
    Last edited by tobros; Jan 16, 2014 at 3:58 AM.
  9. #9
    Filtration triggers on Enter only????
    For the date type filter.

    i wrote a demo, why not execute when type some thing on the filter text of "name"
    It executes, but you return all the data regardless the filtering conditions.
  10. #10
    Quote Originally Posted by Daniil View Post
    For the date type filter.



    It executes, but you return all the data regardless the filtering conditions.
    what you type before the handler execute? why not execute in my front.

    i test my code again,error
    Click image for larger version. 

Name:	QQ截图20140116131649.jpg 
Views:	10 
Size:	13.3 KB 
ID:	7492
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm11.aspx.cs" Inherits="TobrosCWT.test.WebForm11" %>
    
    <!DOCTYPE html>
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script runat="server">
            public class Student
            {
                public int id { get; set; }
                public string name { get; set; }
            }
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!X.IsAjaxRequest)
                {
                }
            }
            public void loadit(object sender, StoreReadDataEventArgs e)
            {
                FilterHeaderConditions fhc = new FilterHeaderConditions(e.Parameters["filterheader"]);
     
                foreach (FilterHeaderCondition condition in fhc.Conditions)
                {
                    string dataIndex = condition.DataIndex;
                    FilterType type = condition.Type;
                    string op = condition.Operator;
                    object value = null;
     
                    switch (condition.Type)
                    {
                        case FilterType.Boolean:
                            value = condition.Value<bool>();
                            break;
     
                        case FilterType.Date:
                            switch (condition.Operator)
                            {
                                case "=":
                                    value = condition.Value<DateTime>();
                                    break;
     
                                case "compare":
                                    value = FilterHeaderComparator<DateTime>.Parse(condition.JsonValue);
                                    break;
                            }   
                            break; 
                        case FilterType.String:
                            value = condition.Value<string>();
                            break;
                        default:
                            throw new ArgumentOutOfRangeException();
                    }
                }
                s_store.DataSource = new List<Student>
                        {
                            new Student{id=1,name="s1"},
                            new Student{id=2,name="s2"},
                            new Student{id=3,name="s3"},
                            new Student{id=4,name="s4"},
                            new Student{id=5,name="s5"},
                            new Student{id=6,name="s6"}
                        };
                s_store.DataBind();
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" SourceFormatting="True" RenderScripts="CDN" RenderStyles="CDN"></ext:ResourceManager>
            <ext:GridPanel ID="GridPanel1" runat="server">
                <Store>
                    <ext:Store runat="server" ID="s_store" OnReadData="loadit" RemoteFilter="True">
                        <Model>
                            <ext:Model ID="Model1" runat="server">
                                <Fields>
                                    <ext:ModelField Name="id"></ext:ModelField>
                                    <ext:ModelField Name="name"></ext:ModelField>
                                </Fields>
                            </ext:Model>
                        </Model>
                        <Proxy>
                            <ext:PageProxy></ext:PageProxy>
                        </Proxy>
                    </ext:Store>
                </Store>
                <ColumnModel>
                    <Columns>
                        <ext:Column ID="Column1" runat="server" DataIndex="id" Text="id"></ext:Column>
                        <ext:Column ID="Column2" runat="server" DataIndex="name" Text="name"></ext:Column>
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:FilterHeader ID="FilterHeader1" runat="server" Remote="true" />
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
Page 1 of 2 12 LastLast

Similar Threads

  1. Remote filter for Header Filter
    By huzzy143 in forum 1.x Help
    Replies: 2
    Last Post: May 09, 2012, 3:43 PM
  2. Remote Filter with HttpProxy
    By mkshields9w57 in forum 1.x Help
    Replies: 1
    Last Post: Oct 24, 2011, 2:50 PM
  3. Remote Filter always empty with DataContext
    By JIGSAW in forum 1.x Help
    Replies: 0
    Last Post: Feb 25, 2011, 12:38 PM
  4. Get filter string for Remote Filtering
    By peter.campbell in forum 1.x Help
    Replies: 2
    Last Post: Feb 15, 2011, 3:34 PM
  5. [CLOSED] Remote Filter using Httpproxy
    By speedstepmem4 in forum 1.x Legacy Premium Help
    Replies: 12
    Last Post: Dec 29, 2010, 8:08 AM

Posting Permissions