加载树节点方法

#region 组合ztree
         // 树结构HTML
         ///   <summary>
        
///  获取树结构
        
///  添加人:
        
///  添加时间:2015-10-30
        
///   </summary>
        
///   <param name="_dt"> DataTable数据源 </param>
        
///   <param name="sCudisplayfiled"> 显示字段 </param>
        
///   <param name="sCudisplayvalue"> 显示值 </param>
        
///   <param name="parentid"> 父节点 </param>
        
///   <param name="sNodeshow"> 节点展示 展开:1,折叠:2 </param>
        
///   <param name="sOpenMode"> 打开方式 新页面:1本页面:2 </param>
        
///   <param name="sSelectMode"> 单选/多选 单选:1,多选:2 </param>
        
///   <param name="sNodeicon"> 节点图标 </param>
        
///   <param name="sNodeurl"> 点击节点跳转地址 </param>
        
///   <returns></returns>
         public  static  string fListMenu(DataTable _dt,  string sCudisplayfiled,  string sCudisplayvalue,  string parentid,  string sNodeshow,  string sOpenMode,  string sSelectMode,  string sNodeicon,  string sNodeurl)
        {
            StringBuilder sb =  new StringBuilder();
            DataRow[] rows = _dt.Select(parentid +  " ='0' "); // 查找跟节点
            sb.Append( " [ ");
             bool isFist =  false;
             #region 组合DAT的JSON字符串
             foreach (DataRow dr  in rows)
            {
                 if (isFist)
                    sb.Append( " , ");
                isFist =  true;
                 string id = dr[sCudisplayfiled].ToString();
                sb.Append( " { ");
                sb.AppendFormat( " 'id':'{0}', ", dr[sCudisplayfiled]);
                sb.AppendFormat( " 'text':'{0}', ", dr[sCudisplayvalue]);
                sb.AppendFormat( " 'pid':'{0}', "" 0 ");
                sb.AppendFormat( " 'iconCls':'icon_{0}', ", sNodeicon);
                sb.AppendFormat( " 'url':'{0}', ", sNodeurl);
                sb.AppendFormat( " 'state':'{0}', ", sNodeshow);
                sb.Append( " children:[ ");
                sb.Append(fGetSubMenu(id, _dt, parentid, sCudisplayfiled, sCudisplayvalue, sNodeshow, sOpenMode, sSelectMode, sNodeicon, sNodeurl));
                sb.Append( " ] ");
                sb.Append( " } ");
            }
             #endregion
            sb.Append( " ] ");
             return sb.ToString();
        }

         ///   <summary>
        
///  递归调用生成无限级别
        
///  添加人:
        
///  添加时间:2015-10-30
        
///   </summary>
        
///   <param name="pid"> 父节点 </param>
        
///   <param name="dt"> DataTable </param>
        
///   <param name="parentid"> 父节点 </param>
        
///   <param name="sCudisplayfiled"> 显示字段 </param>
        
///   <param name="sCudisplayvalue"> 显示值 </param>
        
///   <param name="sNodeshow"> 节点展示 展开:1,折叠:2 </param>
        
///   <param name="sOpenMode"> 打开方式 新页面:1本页面:2 </param>
        
///   <param name="sSelectMode"> 单选/多选 单选:1,多选:2 </param>
        
///   <param name="sNodeicon"> 节点图标 </param>
        
///   <param name="sNodeurl"> 点击节点跳转地址 </param>
        
///   <returns> 返回JSON字符 </returns>
         private  static  string fGetSubMenu( string pid, DataTable dt,  string parentid,  string sCudisplayfiled,  string sCudisplayvalue,  string sNodeshow,  string sOpenMode,  string sSelectMode,  string sNodeicon,  string sNodeurl)
        {
            StringBuilder sb =  new StringBuilder();
            DataRow[] rows = dt.Select(parentid +  " =' " + pid +  " ' ");
             if (rows.Length >  0)
            {
                 bool isFist =  false;
                 #region 组合DAT的JSON字符串
                 foreach (DataRow dr  in rows)
                {
                     if (isFist)
                        sb.Append( " , ");
                    isFist =  true;
                     string id = dr[sCudisplayfiled].ToString();
                    sb.Append( " { ");
                    sb.AppendFormat( " 'id':'{0}', ", dr[sCudisplayfiled]);
                    sb.AppendFormat( " 'text':'{0}', ", dr[sCudisplayvalue]);
                    sb.AppendFormat( " 'pid':'{0}', ", dr[parentid]);
                    sb.AppendFormat( " 'iconCls':'icon_{0}', ", sNodeicon);
                    sb.AppendFormat( " 'url':'{0}', ", sNodeurl);
                    sb.AppendFormat( " 'state':'{0}', ", sNodeshow);
                    sb.Append( " children:[ ");
                    sb.Append(fGetSubMenu(id, dt, parentid, sCudisplayfiled, sCudisplayvalue, sNodeshow, sOpenMode, sSelectMode, sNodeicon, sNodeurl));
                    sb.Append( " ] ");
                    sb.Append( " } ");
                }
                 #endregion
            }
             return sb.ToString();
        }
         #endregion

转载于:https://www.cnblogs.com/zecVip/p/4923813.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值