Oct 06, 2010, 3:40 PM
Having problems with the order that the nodes are inserted in the TreeGrid
Hi,
I'm having problems with TreeGrid because i trying to Bind a ordered list in the TreeGrid, but the result go out unordered, below i show de the example:
Thanks in advance,
I'm having problems with TreeGrid because i trying to Bind a ordered list in the TreeGrid, but the result go out unordered, below i show de the example:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TreeGridExample.WebForm1" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
private List<TreeGridExample.EntityWithOrder> nodes = new List<TreeGridExample.EntityWithOrder>();
protected void Page_Load(object sender, EventArgs e)
{
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 1, Name = "1", Order = 1, MotherID = 0 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 2, Name = "2", Order = 1, MotherID = 1 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 3, Name = "3", Order = 2, MotherID = 1 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 4, Name = "4", Order = 3, MotherID = 1 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 5, Name = "5", Order = 2, MotherID = 0 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 6, Name = "6", Order = 1, MotherID = 5 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 7, Name = "7", Order = 2, MotherID = 5 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 8, Name = "8", Order = 1, MotherID = 6 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 9, Name = "9", Order = 3, MotherID = 0 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 10, Name = "10", Order = 1, MotherID = 9 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 11, Name = "11", Order = 1, MotherID = 10 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 12, Name = "12", Order = 2, MotherID = 10 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 13, Name = "13", Order = 3, MotherID = 10 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 14, Name = "14", Order = 1, MotherID = 12 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 15, Name = "15", Order = 2, MotherID = 12 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 16, Name = "16", Order = 1, MotherID = 15 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 17, Name = "17", Order = 4, MotherID = 0 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 18, Name = "18", Order = 1, MotherID = 17 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 19, Name = "19", Order = 2, MotherID = 17 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 20, Name = "20", Order = 5, MotherID = 0 });
nodes.Add(new TreeGridExample.EntityWithOrder { ID = 21, Name = "21", Order = 1, MotherID = 20 });
}
protected void CarregaNo(object sender, NodeLoadEventArgs e)
{
int parsedValue = 0;
int.TryParse(e.NodeID, out parsedValue);
IList<TreeGridExample.EntityWithOrder> lst = nodes.Where(n => n.MotherID == parsedValue).ToList();
if (lst.Any())
{
List<Ext.Net.TreeNode> l = new List<Ext.Net.TreeNode>();
foreach (TreeGridExample.EntityWithOrder item in lst)
{
Ext.Net.TreeNode treeNode = new Ext.Net.TreeNode();
treeNode.IconCls = "iconeTreeGrid";
treeNode.NodeID = item.ID.ToString();
treeNode.Leaf = false;
treeNode.CustomAttributes.Add(new ConfigItem { Name = "ID", Value = item.ID.ToString(), Mode = ParameterMode.Value });
treeNode.CustomAttributes.Add(new ConfigItem { Name = "Name", Value = item.Name, Mode = ParameterMode.Value });
treeNode.CustomAttributes.Add(new ConfigItem { Name = "Order", Value = item.Order.ToString(), Mode = ParameterMode.Value });
l.Add(treeNode);
}
e.Nodes.AddRange(l);
}
}
</script>
<!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>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager runat="server" />
<ext:TreeGrid ID="_treeLocalidades" runat="server" UseArrows="true" AutoWidth="true"
Height="500" noleaficon="false" EnableDD="false" RootVisible="false">
<Columns>
<ext:TreeGridColumn Header="ID" Width="230" DataIndex="ID" />
<ext:TreeGridColumn Header="Name" Width="230" DataIndex="Name" />
<ext:TreeGridColumn Header="Order" Width="230" DataIndex="Order" />
</Columns>
<Loader>
<ext:PageTreeLoader OnNodeLoad="CarregaNo" />
</Loader>
</ext:TreeGrid>
</form>
</body>
</html>
I insert the nodes in the right order, and i wanted then to be his way...Thanks in advance,