问题描述

好久没有使用ztree了,刚才在使用ztree做导航时遇到了几个小问题:

1、返回数据源是undefined 。

2、数据出现后树结构没有出现(pIdKey单词拼写错误).

3、在使用Oracle查询时,Oracle将所有列名转化为大写,我在JSON处理过程中手动将字段处理成小写。

js代码:

  1. <script type="text/javascript">
  2. var selectNode; // ztree选中节点
  3. var treeObj;
  4. var settings = {
  5. data: {
  6. key: {
  7. name: "name"
  8. },
  9. simpleData: {
  10. enable: true,
  11. idKey: "id",
  12. pIdKey: "pid"
  13.  
  14. }
  15. },
  16. callback: {
  17.  
  18. }
  19. };
  20.  
  21. function AjaxZtree() {
  22. $.ajax({
  23. type: 'GET',
  24. url: '../Analysis/Handler/Tree.ashx?action=report',
  25. cache: true,
  26. async: false,
  27. dataType: "text",
  28. ContentType: "application/json; charset=utf-8",
  29. success: function (data) {
  30. $.fn.zTree.init($("#ReportTree"), settings, (new Function('return' + data))());
  31. treeObj = $.fn.zTree.getZTreeObj("ReportTree");
  32. },
  33. error: function () {
  34. alert('Error');
  35. }
  36. });
  37. }
  38.  
  39. $(document).ready(function () {
  40. AjaxZtree();
  41. });
  42. </script>

ashx代码

  1. public void ProcessRequest(HttpContext context)
  2. {
  3. context.Response.ContentType = "text/plain";
  4. string action = context.Request.QueryString["action"];
  5.  
  6. if (action == "report")
  7. {
  8. var result = reportibll.ZtreeJSON();
  9. string json = ConvertJson.ToJson(result);
  10. context.Response.Write(json);
  11. }
  12. else
  13. {
  14.  
  15. }
  16.  
  17. }

JSON处理代码

  1. public static string ToJson(DataTable dt)
  2. {
  3. StringBuilder jsonString = new StringBuilder();
  4. jsonString.Append("[");
  5. DataRowCollection drc = dt.Rows;
  6. for (int i = 0; i < drc.Count; i++)
  7. {
  8. jsonString.Append("{");
  9. for (int j = 0; j < dt.Columns.Count; j++)
  10. {
  11. string strKey = dt.Columns[j].ColumnName.ToLower();
  12. string strValue = drc[i][j].ToString();
  13. Type type = dt.Columns[j].DataType;
  14. jsonString.Append("\"" + strKey + "\":");
  15. strValue = StringFormat(strValue, type);
  16. if (j < dt.Columns.Count - 1)
  17. {
  18. jsonString.Append(strValue + ",");
  19. }
  20. else
  21. {
  22. jsonString.Append(strValue);
  23. }
  24. }
  25. jsonString.Append("},");
  26. }
  27. jsonString.Remove(jsonString.Length - 1, 1);
  28. jsonString.Append("]");
  29. return jsonString.ToString();
  30. }

  

ztree + ashx +DataTable +Oracle的更多相关文章

  1. .ashx datatable转excel

    using System;using System.Collections;using System.Collections.Generic;using System.Data;using Syste ...

  2. ashx获取Oracle数据库图片

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using DbLib.db; ...

  3. WordPress插件开发记录

    1.a标签在新的网页中打开内容     <a href="网址" target="_blank"></a>      2.PDO的$re ...

  4. 基于ManagedDataAccess开发的OracleDBHelpe工具集伸手党的福音

    在使用前先加入ManagedDataAccessDLL文件方可使用 添加方法:右键项目.点击管理NuGet程序包,点击浏览,在输入框内输入ManagedDataAccess,再点击安装即可 Oracl ...

  5. ashx导出dataTable为Excel

    一,datatable导出Excel,用户可以选择路径,方法如下: /// <summary> /// DataTable导出到Excel /// </summary> /// ...

  6. Jquery.Datatable 控件后端分页实例 (后台使用ashx、aspx-webmethod)

    本实例引用Datatable版本号: 1.10.16 一.传到aspx后台(webmethod) 1.添加js.css引用: <link href="/Scripts/ThirdLib ...

  7. ashx将datatable返回json数据

    1.直接使用JsonConvert.SerializeObject().将datatable放入  输出字符串 下面是测试:用webform+ashx作为接口. public class GetJso ...

  8. 直接将DataTable存入oracle数据库中(转)

    注意 1:传入的DataTable的列必须和数据库中表列必须一致,否则数据会默认往前几列存 2:sql语句只要是对要插入的表的一个查询,目的是为了确定表名 3:取得连接字符串的方法为GetOracle ...

  9. Oracle DataTable的数据批量写入数据库

    insert语句,sqldataadapter.update(dataset,tablename);sqlbulkcopy.WriteToServer(datatable);三个方法的性能进行比较: ...

随机推荐

  1. SMA、SMB、SMC封装的二极管

    以常见的贴片肖特基二极管SS14 SS24 SS34为例,三种管子区别主要在电流上,有三种封装:SMA.SMB.SMC. 从成本和体积来说,优先选用最小尺寸的SMA/DO-214AC封装,其他封装一般 ...

  2. MyBatis的经典案例

    1.首先我们先了解Mybatis的一些jar包 ---和项目框架 2.接下来就看看mybatis的配置文件(mybatis-config.xml) <?xml version="1.0 ...

  3. JDBC的连接和增删改和查找

    package Test2;import java.sql.*;import java.sql.DriverManager;import java.sql.SQLException;public cl ...

  4. JsonUtil

    package com.test.base.util.json; import java.beans.IntrospectionException; import java.beans.Introsp ...

  5. 学习笔记——SQLite介绍

    简介:Google为android的较大数据的处理提供了SQLlite, 他在数据存储.管理.维护.等各方面都相当出色功能也非常强大. 1.创建数据库 Android 为了让我们能够更加方便地管理数据 ...

  6. C#集合类型大盘点

    C#集体类型( Collections in C#) 集合是.NET FCL(Framework Class Library)中很重要的一部分,也是我们开发当中最常用到的功能之一,几乎是无处不在.俗话 ...

  7. 剑指Offer面试题:19.包含Min函数的栈

    一.题目:包含Min函数的栈 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数.在该栈中,调用min.push及pop的时间复杂度都是O(1). 这里我们要实现的就是min ...

  8. java中文乱码解决之道(四)-----java编码转换过程

    前面三篇博客侧重介绍字符.编码问题,通过这三篇博客各位博友对各种字符编码有了一个初步的了解,要了解java的中文问题这是必须要了解的.但是了解这些仅仅只是一个开始,以下博客将侧重介绍java乱码是如何 ...

  9. Go语言实战 - revel框架教程之权限控制

    一个站点上面最基本都会有三种用户角色,未登录用户.已登录用户和管理员.这一次我们就来看看在revel框架下如何进行权限控制. 因为revel是MVC结构的,每一个url其实都会映射到一个具体的Cont ...

  10. java.lang.IndexOutOfBoundsException at java.io.FileOutputStream.writeBytes(Native Method)

    ss available : /usr/linkapp/data/linkapp/ddn_1440639847758_temp java.lang.IndexOutOfBoundsException ...