Jan 29, 2015, 1:34 PM
[CLOSED] Grid is loading records when performing initial sort
On version 2.x, When there is no record loaded into the grid, it's possible to sort it without firing grid's load.
But on version 3.1, it's firing grid's load when performing initial sort.
Side effect: In my scenario, presented here as simple as possible, some validations are performed before grid's load, and if returns false, there is no visual effect when user performs initial sorting.
Thanks in advance
But on version 3.1, it's firing grid's load when performing initial sort.
Side effect: In my scenario, presented here as simple as possible, some validations are performed before grid's load, and if returns false, there is no visual effect when user performs initial sorting.
Thanks in advance
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<script type="text/javascript">
var DoLoad = function () {
App._str.allowLoad = true;
App._str.loadPage(1);
}
var BeforeLoad = function () {
return App._str.allowLoad;
}
</script>
</head>
<body>
<ext:ResourceManager runat="server" />
<ext:Button Text="Load" runat="server">
<Listeners>
<Click Handler="DoLoad();" />
</Listeners>
</ext:Button>
<br />
<ext:GridPanel Title="Ext.Net" Frame="false" Width="500" Height="500" runat="server">
<Store>
<ext:Store AutoLoad="false" ID="_str" RemoteSort="true" runat="server">
<Listeners>
<BeforeLoad Handler="return BeforeLoad();" />
</Listeners>
<CustomConfig>
<ext:ConfigItem Name="allowLoad" Value="false" Mode="Raw" />
</CustomConfig>
<Sorters>
<ext:DataSorter Property="ID" Direction="ASC" />
</Sorters>
<Proxy>
<ext:AjaxProxy Url="~/Example/LoadFakeRecords/">
<ActionMethods Read="POST" />
<Reader>
<ext:JsonReader RootProperty="data" />
</Reader>
</ext:AjaxProxy>
</Proxy>
<Model>
<ext:Model IDProperty="ID" runat="server">
<Fields>
<ext:ModelField Name="ID" Type="int" />
<ext:ModelField Name="Name" Type="String" />
<ext:ModelField Name="LastName" Type="String" />
<ext:ModelField Name="Address" Type="String" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel runat="server">
<Columns>
<ext:Column Text="ID" DataIndex="ID" runat="server" />
<ext:Column Text="Name" Flex="1" DataIndex="Name" runat="server" />
<ext:Column Text="Last Name" DataIndex="LastName" runat="server" />
<ext:Column Text="Address" DataIndex="Address" runat="server" />
</Columns>
</ColumnModel>
</ext:GridPanel>
</body>
</html>
namespace SandBox.Controllers
{
public class ExampleController : System.Web.Mvc.Controller
{
public ActionResult Index()
{
return View();
}
public StoreResult LoadFakeRecords()
{
List<Entity> lst = new List<Entity>();
for (int index = 0; index < 15; index++)
{
lst.Add(new Entity
{
ID = index,
Name = string.Format("Name - {0}", index),
LastName = string.Format("Last Name - {0}", index),
Address = string.Format("Address - {0}", index)
});
}
return new StoreResult(lst, lst.Count());
}
}
[Serializable]
public class Entity
{
public int ID { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
}
}
Last edited by Daniil; Feb 02, 2015 at 5:11 AM.
Reason: [CLOSED]