zoukankan      html  css  js  c++  java
  • 用友U8存货分类通过DataTable生成EasyUI Tree JSON

    <%@ WebHandler Language="C#" Class="InventoryClass" %>
    
    using System;
    using System.Web;
    using System.Data;
    using System.Data.SqlClient;
    using Newtonsoft.Json;
    
    public class InventoryClass : IHttpHandler
    {
        DataTable dt = new DataTable();
        string json = string.Empty;
        public void ProcessRequest(HttpContext context)
        {
            //选取所有成品类别
            using (SqlConnection conn = new SqlConnection(DB.ConnectionStrings.U8))
            using (SqlCommand cmd = new SqlCommand("SELECT cInvCCode as id ,cInvCCode + ' ' + cInvCName as text,iInvCGrade ,bInvCEnd FROM InventoryClass WHERE cInvCCode LIKE 'A%' order by cInvCCode", conn))
            {
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                conn.Open();
                da.Fill(dt);
                //第一个成品类别是A开头,级别为1
                getJson("A%", 1);
                context.Response.Write(json.Substring(11, json.Length - 13));
            }
        }
    
        void getJson(string filter, int iInvCGrade)
        {
            //筛选下一级的分类
            DataView dv = new DataView(dt, @"id like '" + filter + "' and iInvCGrade = " + iInvCGrade.ToString(), "", DataViewRowState.CurrentRows);
            if (dv.Count > 0)
            {
                //添加children
                if (!string.IsNullOrEmpty(json))
                {
                    json = json.TrimEnd(',').TrimEnd('}') + ","children":[";
                }
                else
                {
                    json += ""children":[";
                }
                //循环每一行
                for (int i = 0; i < dv.Count; i++)
                {
                    //JsonConvert用DataTable比较方便
                    DataTable dt2 = dt.Clone();
                    dt2.ImportRow(dv[i].Row);
                    string s = JsonConvert.SerializeObject(dt2);
                    json += s.Remove(0, 1).TrimEnd(']') + ",";      //移除前后的[],并加上,
                    //递归获取下级分类
                    getJson(dv[i]["id"].ToString() + "%", iInvCGrade + 1);
                    dt2.Clear();
                }
                //本层循环完成后去掉后面的,并加上]},
                json = json.TrimEnd(',') + "]},";
            }
        }
    
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    
    }



    生成的JSON可以用于JSON树、下拉列表、网格等

    生成树效果:


  • 相关阅读:
    MYSQL数据库导入数据时出现乱码的解决办法
    Java Web(一) Servlet详解!!
    hibernate(九) 二级缓存和事务级别详讲
    MySQL(五) MySQL中的索引详讲
    LinkedHashMap源码详解
    hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
    hibernate(七) hibernate中查询方式详解
    MySQL(四) 数据表的插入、更新、删除数据
    MySQL(三) 数据库表的查询操作【重要】
    MySQL(二) 数据库数据类型详解
  • 原文地址:https://www.cnblogs.com/apollokk/p/6713838.html
Copyright © 2011-2022 走看看