【一】zTree 同步加载(第一个例子)

C#

 zTree.cs


using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;


///   <summary>
/// zTree 的摘要说明
///   </summary>
public  class zTree
{
     #region 构造函数
     public zTree()
    {
         //
        
// TODO: 在此处添加构造函数逻辑
        
//
    }
     #endregion


     public  string GetModule()
    {
         string sql =  " SELECT m.ID, m.Name, m.ParentID, m.Url, m.Ico FROM Module m ORDER BY m.Level, m.[Index] ";
        DataTable dt = Common.GetTable(sql);
         string treeJson = DtToJson(dt,  " ParentID "" 0 "" ID "" Name ").Substring( 12);
         return treeJson;
    }
     // json处理


     public  static  string DtToJson(DataTable dt,  string pField,  string pValue,  string kField,  string TextField)
    {
        StringBuilder sb =  new StringBuilder();
         string filter = String.Format( "  {0}='{1}'  ", pField, pValue);  // 获取顶级目录.
        DataRow[] drs = dt.Select(filter);
         if (drs.Length <  1)
             return  "";
        sb.Append( " ,\"children\":[ "); 
         foreach (DataRow dr  in drs)
        {
             string pcv = dr[kField].ToString();
            sb.Append( " { ");
            sb.AppendFormat( " \"name\":\"{0}\", ", dr[TextField].ToString());
            sb.AppendFormat( " \"id\":\"{0}\", ", dr[kField].ToString());
            sb.AppendFormat( " \"pId\":\"{0}\", ", dr[kField].ToString());
            sb.AppendFormat( " \"url\":\"{0}\", "" http://www.baidu.com ");
            sb.AppendFormat( " \"icon\":\"{0}\", """);
            sb.AppendFormat( " \"open\":\"{0}\", "true);
            sb.AppendFormat( " \"checked\":\"{0}\" "false);
     
            sb.Append(DtToJson(dt, pField, pcv, kField, TextField).TrimEnd( ' , '));
            sb.Append( " }, ");
        }
         if (sb.ToString().EndsWith( " , "))
        {
            sb.Remove(sb.Length -  11);
        }
        sb.Append( " ] ");
         return sb.ToString();
    }
}

 Common.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;

///   <summary>
/// Class1 的摘要说明
///   </summary>
public  class Common
{
     public Common()
    {
         //
        
// TODO: 在此处添加构造函数逻辑
        
//
    }

     public  static DataTable GetTable( string sql)
    {
         string strConn =  @" Provider=SQLOLEDB;Data Source=127.0.0.1\SQLEXPRESS;Initial Catalog=a;User Id=sa;Password=123456; ";
        DataSet ds =  new DataSet();
        DataTable dt =  new DataTable();
         using (OleDbConnection conn =  new OleDbConnection(strConn))
        {
             if (conn.State != ConnectionState.Open)
                conn.Open();
            OleDbCommand comm =  new OleDbCommand(sql, conn);
            OleDbDataAdapter da =  new OleDbDataAdapter(comm);
            da.Fill(ds);
             if (conn.State != ConnectionState.Closed)
                conn.Close();
        }
        dt = ds.Tables[ 0];
         return dt;
    }
}

 Handler.ashx

<%@ WebHandler Language= " C# " Class= " Handler " %>

using System;
using System.Web;

public  class Handler : IHttpHandler {
    
     public  void ProcessRequest (HttpContext context) {
        context.Response.ContentType =  " text/plain ";
         string method = context.Request[ " action "];
         switch (method)
        {
             case  " GetModule ":
                {
                     string a = context.Request.Params[ " id "]; // 参数为id
                    zTree zTree =  new zTree();

                    context.Response.Write(zTree.GetModule());
                     break;
                }
             default:
                 break;
        }
    }
 
     public  bool IsReusable {
         get {
             return  false;
        }
    }

}

 aspx

   <ul id= " treeDemo "  class= " ztree "></ul>

 js


     var setting = {
        data: {
            simpleData: {
                enable:  true
            }
        }
    };
     
    function createTree () {
         var zNodes;
        $.ajax({
            url:  ' Handler.ashx?action=GetModule '// url  action是方法的名称
            data: { id:  " 11 " },
            type:  ' POST ',
            dataType:  " text "// 可以是text,如果用text,返回的结果为字符串;如果需要json格式的,可是设置为json
            ContentType:  " application/json; charset=utf-8 ",
            success: function(data) {
                zNodes = data;

                $.fn.zTree.init($( " #treeDemo "), setting, eval( ' ( ' + zNodes +  ' ) '));

            },
            error: function(msg) {
                alert( " 失败 ");
            }
        });
    }

    $(document).ready(function() {
        createTree();
    });

转载于:https://www.cnblogs.com/puke/archive/2012/08/08/2628596.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值