AutoLoadParams not applied with RemoteFilter

  1. #1

    AutoLoadParams not applied with RemoteFilter

    Hi,
    I found out, that Ext.Net.Store.AutoLoadParams is not applied to first request of store, if Ext.Net.Store.RemoteFilter is true and there are som GridFilters in grid connected with store.

    Example:

    <%@ Page Language="C#" AutoEventWireup="true" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager runat="server" />
        <ext:Store
            ID="store"
            runat="server"
            AutoLoad="true"
            RemoteFilter="true"
            OnReadData="storeMain_RefreshData">
            <Proxy>
                <ext:PageProxy />
            </Proxy>
            <Model>
                <ext:Model runat="server" IDProperty="ID">
                    <Fields>
                        <ext:ModelField Name="ID"  />
                        <ext:ModelField Name="Name" />
                    </Fields>
                </ext:Model>
            </Model>
    <%--        <AutoLoadParams>
                <ext:Parameter Name="start" Value="40" />
            </AutoLoadParams>--%>
        </ext:Store>
        <ext:Viewport ID="viewport" runat="server" Layout="border">
            <Items>
                <ext:GridPanel
                    ID="gridMain"
                    runat="server"
                    Region="Center"
                    StoreID="store">
                    <ColumnModel>
                        <Columns>
                            <ext:Column Width="150" runat="server" DataIndex="Name" Text="Name">
                                <Filter>
                                    <ext:StringFilter />
                                </Filter>
                            </ext:Column>
                            <ext:Column Width="140" runat="server" DataIndex="ID" Text="ID" />
                        </Columns>
                    </ColumnModel>
                    <View>
                        <ext:GridView runat="server" />
                    </View>
                    <Plugins>
                        <ext:GridFilters runat="server" />
                    </Plugins>
                </ext:GridPanel>
            </Items>
        </ext:Viewport>
        </form>
    </body>
    </html>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest) this.store.AutoLoadParams["start"] = "40";
        }
        protected void storeMain_RefreshData(object sender, StoreReadDataEventArgs e)
        {
            if (e.Start == 40)
            {
                // OK
            }
            else
            {
                // WRONG
            }
        }
    </script>
    Is it a bug or intended behavior?

    Thanks.
  2. #2
    There are some more issues:

    1) Paging toolbar does not change its page according to store's start parameter (I believe it worked in Ext.NET 1.6).

    2) If Ext.Net.Store.RemoteFilter=true, Ext.Net.Store.AutoLoad is ignored

    Example:
    Try combinations:
    - AutoLoad=true, RemoteFilter=true (wrong data, wrong paging toolbar)
    - AutoLoad=true, RemoteFilter=false (right data, wrong paging toolbar)
    - AutoLoad=false, RemoteFilter=true (loads automatically)

    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager runat="server" />
        <asp:ObjectDataSource 
            ID="ObjectDataSource1" 
            runat="server" 
            OnSelecting="ObjectDataSource1_Selecting"
            OnSelected="ObjectDataSource1_Selected"
            SelectMethod="GetData" 
            TypeName="MyNamespace.WebForm1">
            <SelectParameters>
                <asp:Parameter Name="start" Type="Int32" />
                <asp:Parameter Name="limit" Type="Int32" />              
                <asp:Parameter Name="count" Direction="Output" Type="Int32" />
            </SelectParameters>
        </asp:ObjectDataSource>
        <ext:Store
            ID="store"
            runat="server"
            PageSize="20"
            AutoLoad="true"
            RemoteFilter="true"
            DataSourceID="ObjectDataSource1"
            OnReadData="store_RefreshData">
            <Proxy>
                <ext:PageProxy />
            </Proxy>
            <Model>
                <ext:Model runat="server" IDProperty="ID">
                    <Fields>
                        <ext:ModelField Name="ID"  />
                        <ext:ModelField Name="Name" />
                    </Fields>
                </ext:Model>
            </Model>
        </ext:Store>
        <ext:Viewport ID="viewport" runat="server" Layout="border">
            <Items>
                <ext:GridPanel
                    ID="gridMain"
                    runat="server"
                    Region="Center"
                    StoreID="store">
                    <ColumnModel>
                        <Columns>
                            <ext:Column Width="150" runat="server" DataIndex="Name" Text="Name">
                                <Filter>
                                    <ext:StringFilter />
                                </Filter>
                            </ext:Column>
                            <ext:Column Width="140" runat="server" DataIndex="ID" Text="ID" />
                        </Columns>
                    </ColumnModel>
                    <View>
                        <ext:GridView runat="server" />
                    </View>
                    <Plugins>
                        <ext:GridFilters runat="server" />
                    </Plugins>
                    <BottomBar>
                        <ext:PagingToolbar ID="pagingToolbar" runat="server" />
                    </BottomBar>
                </ext:GridPanel>
            </Items>
        </ext:Viewport>
        </form>
    </body>
    </html>
            protected StoreReadDataEventArgs ea;
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!X.IsAjaxRequest) this.store.AutoLoadParams["start"] = "40";
                //if (!X.IsAjaxRequest) X.AddScript(this.store.ClientID + ".currentPage = 3;" + this.store.ClientID + ".load();"); // possible workaround if AutoLoad=false and RemoteFilter=false and automatic load wanted
            }
            protected void store_RefreshData(object sender, StoreReadDataEventArgs e)
            {
                this.ea = e;
                if (e.Start == 40)
                {
                    // OK
                }
                else
                {
                    // WRONG
                }
            }
            protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
            {
                (this.store.Proxy[0] as PageProxy).Total = (int)e.OutputParameters["count"];
            }
            protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
            {
                e.InputParameters["start"] = this.ea.Start;
                e.InputParameters["limit"] = this.ea.Limit;
            }
            public List<object> GetData(int start, int limit, out int count)
            {
                count = 1000;
                var list = new List<object>();
                for (var i = start; i < limit + start; i++)
                {
                    list.Add(new { ID = i, Name = "Name " + i });
                }
                return list;
            }

Similar Threads

  1. Replies: 4
    Last Post: Aug 22, 2013, 9:00 AM
  2. Filters in ext.net.mvc Store with RemoteFilter
    By asolvent in forum 2.x Help
    Replies: 0
    Last Post: Aug 13, 2013, 11:55 AM
  3. Replies: 5
    Last Post: Jun 26, 2012, 8:52 PM
  4. [CLOSED] How to send the variable string in AutoLoadParams
    By ViDom in forum 1.x Legacy Premium Help
    Replies: 10
    Last Post: Jul 25, 2011, 11:40 AM
  5. [CLOSED] Difference between store's AutoLoadParams and BaseParams
    By jchau in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Jul 16, 2009, 6:04 AM

Tags for this Thread

Posting Permissions