Ext tree无限级动态树

ContractedBlock.gif ExpandedBlockStart.gif Code
 public void CreateData()
        {
            
/*数据源
            Common.RunParameter.Instance().DataLink = @"Data Source=SP002\MSSQLSERVERS; Initial Catalog=SP2008_ZC_01; uid=sa; pwd=***; Pooling=True;";
            Common.RunParameter.Instance().DataType = "SqlServer";
            DataTable dt = Database.DBOperate.ExecuteDataset("Select tGuid,tCode,tName,tRoot,tRank From ScTeam where tDele = 0  Order By tCode").Tables[0];

            //Common.RunParameter.Instance().DataLink = @"Data Source=SP002\MSSQLSERVERS; Initial Catalog=SP2008_JX_01; uid=sa; pwd=***; Pooling=True;";
            //Common.RunParameter.Instance().DataType = "SqlServer";
            //DataTable dt = Database.DBOperate.ExecuteDataset("Select rGuid,rCode,rName,rRoot,rRank From ScRace where rDele = 0  Order By rCode").Tables[0];
            
*/
            JavaScriptSerializer serializer 
= new JavaScriptSerializer();
            
string result = serializer.Serialize(getJson(dt));
            Response.Write(result);
            

        }

        
private static Nodes[] getJson(DataTable dt)
        {
            var node 
= new List<Nodes>();
            
foreach (DataRow row in dt.Rows)
            {
                
if (int.Parse(row["tRank"].ToString()) != 1continue;
                var code 
= row[1].ToString();
                var r 
= dt.Select(string.Format("{0}='{1}'", dt.Columns[3].ColumnName, code), "");
                Nodes n;
                
if (r.Length == 0)
                {
                    n 
= new Nodes { id = row[0].ToString(), text = row[2].ToString(), leaf = true };
                }
                
else
                {
                    n 
= new Nodes { id = row[0].ToString(), text = row[2].ToString() };
                    n 
= getNodes(code, dt, n);
                }
                node.Add(n);
            }
            
return node.ToArray();
        }

        
private static Nodes getNodes(string code, DataTable dt, Nodes n)
        {
            var nc 
= n;
            
foreach (var row in dt.Select(string.Format("{0}='{1}'", dt.Columns[3].ColumnName, code), ""))
            {
                var c 
= row[1].ToString();
                var r 
= dt.Select(string.Format("{0}='{1}'", dt.Columns[3].ColumnName, c), "");
                Nodes ns;
                
if (r.Length == 0)
                {
                    ns 
= new Nodes { id = row[0].ToString(), text = row[2].ToString(), leaf = true };
                }
                
else
                {
                    ns 
= new Nodes { id = row[0].ToString(), text = row[2].ToString() };
                    getNodes(c, dt, ns);
                }
                nc.children.Add(ns);
            }
            
return nc;
        }
    }
    
class Nodes
    {
        
public string id;
        
public string text;
        
public bool leaf;
        
public List<Nodes> children = new List<Nodes>();
    }


//只要将树的dataurl指像这个页面即可
posted on 2008-10-31 14:09 Rindy 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/rindybo/archive/2008/10/31/1323661.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值