用友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开头,,级别为1getJson("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){//添加childrenif (!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树、下拉列表、网格等

生成树效果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

在时间里面我们什么也不能留下,包括痛苦,快乐和生命。

用友U8存货分类通过DataTable生成EasyUI Tree JSON

相关文章:

你感兴趣的文章:

标签云: