I am so sorry, first I used AutoLoadParams in wrong way and it not worked, so I was looking for another solution.
The right way to set initial page number of store is by setting AutoLoadParams of Ext.Net.Store
this.store.AutoLoadParams["start"] = "40"; // or ((pageNumber - 1) * pageSize).ToString();
or
<AutoLoadParams>
<ext:Parameter Name="start" Value="40" /> <%-- for 3rd page --%>
</AutoLoadParams>
BUT!!!
a) this solution not sets right page to PagingToolbar
b)
This solution is not working with Store's property RemoteFilter set to true. Strange!
If I set RemoteFilter=true and grid has some Gridfilters, AutoLoadParams do not apply.
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="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>
<%-- <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 store_RefreshData(object sender, StoreReadDataEventArgs e)
{
if (e.Start == 40)
{
// OK
}
else
{
// WRONG
}
}
</script>
I started new thread
AutoLoadParams not applied with RemoteFilter