zoukankan      html  css  js  c++  java
  • ztree + ashx +DataTable +Oracle

        问题描述

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

               1、返回数据源是undefined 。

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

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

     js代码:    

    <script type="text/javascript">
            var selectNode; // ztree选中节点
            var treeObj;
            var settings = {
                data: {
                    key: {
                        name: "name"
                    },
                    simpleData: {
                        enable: true,
                        idKey: "id",
                        pIdKey: "pid"
    
                    }
                },
                callback: {
    
                }
            };
    
            function AjaxZtree() {
                $.ajax({
                    type: 'GET',
                    url: '../Analysis/Handler/Tree.ashx?action=report',
                    cache: true,
                    async: false,
                    dataType: "text",
                    ContentType: "application/json; charset=utf-8",
                    success: function (data) {
                        $.fn.zTree.init($("#ReportTree"), settings, (new Function('return' + data))());
                        treeObj = $.fn.zTree.getZTreeObj("ReportTree");
                    },
                    error: function () {
                        alert('Error');
                    }
                });
            }
    
            $(document).ready(function () {
                AjaxZtree();
            });
        </script>
    

    ashx代码

    public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                string action = context.Request.QueryString["action"];
    
                if (action == "report")
                {
                    var result = reportibll.ZtreeJSON();
                    string json = ConvertJson.ToJson(result);
                    context.Response.Write(json);
                }
                else
                { 
                    
                }
    
                
            }
    

    JSON处理代码

     public static string ToJson(DataTable dt)
            {
                StringBuilder jsonString = new StringBuilder();
                jsonString.Append("[");
                DataRowCollection drc = dt.Rows;
                for (int i = 0; i < drc.Count; i++)
                {
                    jsonString.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        string strKey = dt.Columns[j].ColumnName.ToLower();
                        string strValue = drc[i][j].ToString();
                        Type type = dt.Columns[j].DataType;
                        jsonString.Append(""" + strKey + "":");
                        strValue = StringFormat(strValue, type);
                        if (j < dt.Columns.Count - 1)
                        {
                            jsonString.Append(strValue + ",");
                        }
                        else
                        {
                            jsonString.Append(strValue);
                        }
                    }
                    jsonString.Append("},");
                }
                jsonString.Remove(jsonString.Length - 1, 1);
                jsonString.Append("]");
                return jsonString.ToString();
            }
    

      

       

  • 相关阅读:
    [Android Pro] AndroidStudio IDE界面插件开发(Hello World篇)
    [Android Pro] 组件化:企业级大型项目必经之路
    [Android Pro] 终极组件化框架项目方案详解
    [Android Pro] 由模块化到组件化(一)
    [Android Pro] 开发一流Android SDK
    [Android Pro] 开发一流的 Android SDK:Fabric SDK 的创建经验
    [Android Security] 静态分析Android程序——smali文件解析
    [Android Security] jar文件转smali文件
    [Android Security] APK自我保护
    C++ this指针
  • 原文地址:https://www.cnblogs.com/sword-successful/p/3778318.html
Copyright © 2011-2022 走看看