关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

c#递归无穷树 easyui json例子无敌

发布时间:2019-11-02 12:53:02

2323-300x245.jpg

c# 递归 无穷树 easyui json例子无敌


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.IO;

using System.Text;

using System.Data;

using System.Data.Sql;

using System.Data.SqlClient;

using NetWing.Common.Data;

using NetWing.Common.Data.SQLServer;


namespace NetWingManager

{

    public partial class testtree : System.Web.UI.Page

    {

        public string nodes = string.Empty;

        protected void Page_Load(object sender, EventArgs e)

        {

            DataTable dt = SqlEasy.ExecuteDataTable("select * from Co_ItemNameSet ");

            GetAllNodes(0,dt);

            Response.Write("[" + nodes + "]");//加}是为了闭合

   


        }

        /// <summary>

        /// 根据DataTable生成Json树结构

        /// </summary>

        /// <param name="dt">数据源</param>

        /// <param name="pid">父ID</param>

        public void GetAllNodes(int pid,DataTable dt)

        {


            DataRow[] drs = dt.Select("parentitemid=" + pid);

            if (drs.Length <= 0) return;

            int i = 1;

            foreach (DataRow dr in drs)

            {

                //nodes += "总"+drs.Length+"{\"itemname\":"+"\""+dr["itemname"].ToString() +"\""+ "}第"+i;

                nodes += "{\"itemid\":\"" + dr["itemid"].ToString() + "\",\"itemname\":" + "\"" + dr["itemname"].ToString() + "\"";

      

                DataRow[] drc = dt.Select("parentitemid=" + dr["itemid"].ToString());

                if (drc.Length > 0) //假如大于0 说明有子集

                {

                    nodes += ",\"children\":[";

                    GetAllNodes(int.Parse(dr["itemid"].ToString()), dt);//递归 就是自己调用自己

                    nodes += "]";//子集直接在这里封口

                }


                if (i < drs.Length)//如果datarow没有循环完

                {

                    nodes += "},";//循环没有完不封口

                }

                else

                {

                    nodes += "}";//循环完了封口

                }

                i = i + 1;

                

            }

        }

    }

}



/template/Home/Zkeys/PC/Static