Asp.net生成Extjs-Tree数据格式的json类

ASP.NET运用ExtJs与WCF交互生成Tree目录树实例 这个实例是在ASP.NET环境下运行,如果要修改方案需要用到VS2008,本实例结合ExtJs与WCF交互生成WEBTree目录树结构,正在研究此方面的朋友不失为一个好资料。 立即下载

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
//using System.Web.Script.Serialization;
using System.Runtime.Serialization;

///
/// JSONHelper 的摘要说明
///
public class DTreeJSONHelper
{
    //对应JSON的singleInfo成员
    public string singleInfo = string.Empty;

    protected string _error = string.Empty;
    protected bool _success = true;
    protected long _totalCount = 0;
    protected System.Collections.ArrayList arrData = new ArrayList();
    protected System.Collections.ArrayList arrDataItem = new ArrayList();


    public DTreeJSONHelper()
    {

    }

    //public static string ToJSON(object obj)
    //{
    //    JavaScriptSerializer serializer = new JavaScriptSerializer();
    //    return serializer.Serialize(obj);
    //}

    //public static string ToJSON(object obj, int recursionDepth)
    //{
    //    JavaScriptSerializer serializer = new JavaScriptSerializer();
    //    serializer.RecursionLimit = recursionDepth;
    //    return serializer.Serialize(obj);
    //}

    //对应于JSON的success成员
    public bool success
    {
        get
        {
            return _success;
        }
        set
        {
            //如设置为true则清空error
            if (success) _error = string.Empty;
            _success = value;
        }
    }

    //对应于JSON的error成员
    public string error
    {
        get
        {
            return _error;
        }
        set
        {
            //如设置error,则自动设置success为false
            if (value != "") _success = false;
            _error = value;
        }
    }

    public long totlalCount
    {
        get { return _totalCount; }
        set { _totalCount = value; }
    }


    //重置,每次新生成一个json对象时必须执行该方法
    public void Reset()
    {
        _success = true;
        _error = string.Empty;
        singleInfo = string.Empty;
        arrData.Clear();
        arrDataItem.Clear();
    }

 

    public void AddItem(string name, string value)
    {
        if (name == "checked" && value == "1")
        {
            value = "true";
            arrData.Add("'" + name + "':" + "" + value + "");
        }
        else if (name == "checked" && value == "0")
        {
            value = "false";
            arrData.Add("'" + name + "':" + "" + value + "");
        }
        else if (name == "leaf" && value=="1")
        {
            value = "true";
            arrData.Add("'" + name + "':" + "" + value + "");
        }
        else if (name == "leaf" && value == "0")
        {
            value = "false";
            arrData.Add("'" + name + "':" + "" + value + "");
        }
        else
        {
            arrData.Add("'" + name + "':\"" + "" + value + "\"");
        }
      
    }

 

    public void ItemOk()
    {
        arrData.Add("
");
        //返回总记录条数
        totlalCount++;
    }

    //序列化JSON对象,得到返回的JSON代码
    public override string ToString()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("[");
      
        int index = 0;
        sb.Append("{");
        if (arrData.Count <= 0)
        {
            sb.Append("}");
        }
        else
        {
            foreach (string val in arrData)
            {
              

                index++;

                if (val != "
")
                {
                    sb.Append(val + ",");
                }
                else
                {
                    sb = sb.Replace(",", "", sb.Length - 1, 1);
                    sb.Append("},");
                    if (index < arrData.Count)
                    {
                        sb.Append("{");
                    }
                }

            }
            sb = sb.Replace(",", "", sb.Length - 1, 1);
            sb.Append("");
        }

        sb.Append("]");
        return sb.ToString();
    }
}

//=============================================调用例子=============================

using System;
using System.Collections.Generic;
using System.Text;
//using Model;
using DAL;
using System.Data;

namespace BLL
{
    public class MenuTree
    {
        private DataSet ds;
        DAL.MenuTree dao = new DAL.MenuTree();

        //查询权限树信息
        public string GetDtreeInfos(string parentID)
        {
            string DTreeJSON="";
            DTreeJSONHelper json = new DTreeJSONHelper();
            try
            {
                ds=dao.getDTreeInfo(parentID);
                json.success = true;
                foreach(DataRow dr in ds.Tables[0].Rows)
                {
                    json.AddItem("href", dr["href"].ToString());
                    json.AddItem("hrefTarget", "MainFram");
                    json.AddItem("id", dr["id"].ToString());
                    //json.AddItem("parentid", dr["parentid"].ToString());
                    json.AddItem("text", dr["title"].ToString());
                    json.AddItem("leaf", dr["leaf"].ToString());
                    //json.AddItem("icon", dr["icon"].ToString());
                    //json.AddItem("number", dr["number"].ToString());
                    json.AddItem("qtip", dr["title"].ToString());
                    //json.AddItem("checked", "1");
                  
                    json.ItemOk();
                }
                DTreeJSON = json.ToString();
            }
            catch (Exception)
            {
               
                throw;
            }
            return DTreeJSON;
        }
    }
}


UE5实战:用Cesium插件打造逼真湖泊效果(附波纹参数调优技巧) 本文详细介绍了在Unreal Engine 5中利用Cesium插件创建逼真区域水效果(如湖泊)的实战流程。重点解析了通过材质层混合机制,精细调整波纹参数(如DistanceScale、NearScale)来模拟不同水体状态,并提供了从资产创建、地形配置到视觉调优的一站式解决方案,帮助开发者高效实现非海洋水域的动态视觉效果。 阅读详情

相关推荐

GBase8a-GDCA认证考试-复习参考题

为提升产品服务水平定期举办GBase产品认证培训,培训更多GBase数据库专业人员,满足用户快速成长的业务需求,建设GBase产品生态。请注意甄别,根据所学知识综合判断,正确率97%(97分)。

weixin_41826637的博客 2374

将DataTable转换成EasyUITree的json格式 ---四级树

如何将datatable格式的数据拼接easyui的树的学习,只是初步了解,如何灵活运用还需要进一步实践。主要的问题在于根据条件从datatable中筛选树的节点。另外就是要注意easyui-tree需要的格式,具体的easyui-tree的js以及html代码就不再展示。在编程的过程中站在巨人的肩膀上是很重要的前提条件,如果想进一步的提升自我,还需要多总结,编辑知识网。

有梦才叫青春 3085

MTGS与3D高斯泼溅:如何用多轨迹数据重建自动驾驶场景(附代码解析)

本文深入解析了MTGS(多轨迹高斯泼溅)技术在自动驾驶场景重建中的工程实践。该方法通过分层场景表示,巧妙融合多轨迹数据,利用3D高斯泼溅技术统一处理静态几何与动态物体,有效解决了复杂环境下的重建难题。文章结合代码,详细阐述了其实现框架、损失函数设计及优化策略,为构建高保真数字孪生场景提供了实用指南。

v5w6x的博客 446

Asp.net生成Extjs-Gridpanel数据格式json类

<br />using System;<br />using System.Collections;<br />using System.Collections.Generic;<br />using System.Text;<br />//using System.Web.Script.Serialization;<br />/// <summary><br />/// JSONHelper 的摘要说明<br />/// </summary><br />public class JSONHelper<br

zsf8681的专栏 773

FPGA远程升级避坑实录:用STARTUPE2原语搞定Flash时钟,K7325T实测有效

本文深入解析了FPGA远程升级中的STARTUPE2原语应用,特别针对K7325T芯片的Flash时钟问题提供了实测有效的解决方案。通过详细的原语工作机制、Vivado工程实现步骤及调试技巧,帮助工程师规避常见陷阱,提升远程升级的可靠性和效率。

weixin_42558093的博客 141

SLAM Cartographer(18)后端优化问题求解器

了解经过闭环检测构建了子图与节点之间的约束之后,通过后端优化求解器进行优化求解。核心是基于Ceres库进行SPA(Sparse Pose Adjustment)的优化方法,把后端优化问题描述成为一个最小二乘的问题求解

氢键H-H 5680

extjs Tree转json

 private List mlist = MongoDBHelper.GetAll(ConsTable.GM_MENU); public void ProcessRequest(HttpContext context)         {             context.Response.ContentType = "text/plain";             con

jiaqichinese的专栏 719

基于C#的工业机器人上位机控制程序开发(搭配松下PLC+MC协议)

基于C#的工业机器人上位机控制程序开发,核心是上位机与松下PLC的MC协议通信和机器人控制的安全逻辑,而不是单纯的界面编写。在工控现场,程序的稳定性和安全性永远是第一位的——比如解耦通信逻辑、处理跨线程问题、添加安全互锁、记录操作日志,这些都是保证产线稳定运行的关键。新手在学习时,建议先跟着步骤搭建好环境,跑通基础的PLC通信和机器人控制功能,再逐步尝试进阶优化。数据模型化、通信封装化、逻辑模块化、UI解耦化。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1239

NHibernate3.2+Asp.net MVC3+Extjs 4.0.2项目实践(五):Extjs树形导航菜单

  前一节中介绍了ViewPort,APPMenuTree定位在west region,继承自Ext.tree.Panel,需要实现的功能是从数据库System_Purview表中获取menu数据生成tree,并实现tree node的单击,在MainPanel中动态加载Tab。关键在于如何生成tree所需的Json数据,而tree的Json数据格式是这样的: [{id:'01',text:'01...

weixin_30760895的博客 151

7.DJI-PSDK:psdk负载应用固件升级(基于RTOS)

在单片机应用程序开发阶段,我们可以借助keil5和J-LINK来直接下载应用程序进行开发和调试, 但在产品交付之后,我们对应用程序做了改动和升级,是断然不可能采用这种方式的,我们应该将新版本的程序固件打包发给客户, 能够方便用户通过DJI Assistant2选择更新负载设备的固件,导入本地固件程序包,更新负载设备。使用STM32F4 开发的负载设备从Flash 中直接读取固件文件并运行负载设备程序,因此开发者需先烧录Bootloader 再烧录应用固件,烧录Bootloader 的步骤不再赘述。

哒宰的博客 673

24、手机GPS天线设计与有源GNSS天线性能评估

本文系统介绍了手机GPS天线的代表性设计,包括隔离磁偶极子、共面平衡偶极子和小型陶瓷加载QHA天线,分析了其结构特点、性能参数及适用场景。同时详细阐述了有源GNSS天线的组成结构与G/T比作为关键性能指标的评估方法,并提出了组件选择、噪声控制和增益提升等优化策略。最后展望了未来手机GPS天线在小型化、多频集成和智能适应性方面的发展趋势。

pytorch8learner的博客 720

Asp.net结合Extjs实现一次加载整个树和动态加载树

Asp.net结合 Extjs 实现 一次加载整颗树 和 动态 加载 树

Rock870210的专栏 6344

AI人工智能领域持续学习:提升技术能力的关键

在当今科技飞速发展的时代,AI人工智能已经渗透到我们生活的方方面面。本文章的目的就是帮助大家了解在AI人工智能领域持续学习的重要性,以及如何通过持续学习来提升自己的技术能力。文章会涵盖AI的核心概念、持续学习的原理和方法、实际应用场景等方面,让大家对AI领域的持续学习有一个全面的认识。本文首先会介绍AI人工智能的核心概念,让大家对这个领域有一个初步的了解。然后详细讲解持续学习的原理和方法,通过代码示例展示如何在实际项目中实现持续学习。接着会分析AI持续学习在不同场景的应用,推荐一些学习工具和资源。

AI 原生应用开发的博客 1289

Extjs4.2 TreePanel+Asp.net mvc 动态加载节点

extjs经常使用的部分有界面、数据模型、数据源、事件。构建TreePanel需要三个,UI、模型、和数据源。 在extjs中,为了让数据源能够正确载入数据,我们需要定义以个数据模型。 树节点的模型定义: Ext.define('TreeData', { extend: 'Ext.data.Model', fields: [ { name: 'id', }

守卫 2248

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ASP.NET MVC4 中整合 NHibernate3.3、Spring.NET2.0、ExtJS4 笔记五:ExtJS4.0整合

本文源码地址:http://download.csdn.net/detail/xz2001/4944407 一、介绍与下载 整个框架的整合中,ExtJS比较简单,与NHibernate、Spring.NET几乎没有什么关系,唯一需要的是JSON或XML格式数据。 在写这篇文件时,ExtJS的最新版是4.0.7,本文也就采用这个版本。 ExtJS4.0与2、3有明显的区别,3.x

图钉的笔记 3444

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Extjs-树 Ext.tree.TreePanel 动态加载数据

先上效果图 1、说明Ext.tree.Panel 控件是树形控件,大家知道树形结构在软件开发过程中的应用是很广泛的,树形控件的数据有本地数据、服务器端返回的数据两种。对于本地数据的加载,在extjs的 api文档中都有介绍,但是Extjs.tree.Panel怎么动态加载数据库中的数据,API文档介绍的较少,以至于初学者,不知道怎么实现。本篇文章将介绍Extjs.tree.Panel动态加载...

weixin_30430169的博客 1698

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

使用 ExtJS TreePanel 从 ASP.NET AJAX Web Service 获取、绑定和显示树

1.Web ServiceCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsT

lee576的专栏 2889

ASP.NET MVC 异步获取和刷新ExtJS6 TreeStore

从数据库获取构造树结构是ExtJS TreePanel的核心技术,常用方法是TreeStroe里配置proxy,这种方式的root成了一个不受控制的节点。 TreeStroe的root实际是一个层叠json数据,大部分情况是直接写一些简单数据,但在实际应用中必定是要从数据库读取的。我的方法是先用Ext.Ajax.request获取root数据形成TreeStroe。定义一个全局的TreeStroe...

weixin_33861800的博客 140

在Coolite Asp.Net MVC 中用Extjs 实现带Check的树

  带Check状态的树,功能说明:   1)当一个节点选中时,其子节点也都选中;   2)当一个节点取消选中时,其子节点也都取消选中,其父接点也都需要取消选中   效果见图:    图像上虚框是真正操作的CheckBox 废话不多说,上代码,首先看看例子的数据结构 看到这几张图,也许你有自己做的思路了吧,先看看我做的吧 我看需要查询出权限,还得查询出角色有的权限。何不一起查呢...

weixin_30639719的博客 146

amcharts动态生成数据

ExtJS3.0出来了,不出所料,添加了Chart图表功能,但我觉得它自带的四种类型图表实在不怎么样,不够美观。今天在网上找了一下合适的Chart,比较流行的有AMChart和ChartFusion等。于是使用ExtJS和AMChart做了一个简单的图表演示Demo,感觉还不错。我下载的AMChart类型是amcolumn,即柱状图,大家可以根据需要在http://www.amcharts.com

gougou_blue的专栏 3759

ExtJS 2.0官方实例目录

http://extjs.org.cn/node/81 将会按照ExtJs2.02的例子的分类来完成,并保证所有的例子均可以运行. 教程将会在2008-04-21开始,每周更新。更新后的颜色将会变成蓝色,并且可以点击! 本系列教程已于 2008-06-30 全部更新完毕,并将 实例讲解目录 更改为 在线实例目录. 于 2008-07-01 将 在线实例目录 更改为 官方实例目录. 该版本

走马观花 728

Ext JS4序列教程之二 :异步加载accordion和Tree菜单

1、序言 EXT JS4序列教程主要讲解WEB开发中一些常用的组件,例如Tree,Grid,Combobox,form等,EXT JS4的出现为广大程序员带来了福音,我们可以用较少的代码,实现很炫丽的效果,我在很多项目的架构中都使用EXT JS作为核心的WEB框架,配合jQuery框架,大家很容易实现一个用户体验很不错的软件系统(我们称之为高大上,哈哈哈)。EXT JS自推出以来,其性能就饱

死牛崇拜的专栏 5953

ExtAspNet v2.0.6发布 - AJAX性能提升

产品名称: ExtAspNet当前版本: v2.0.6最后更新: 2009-08-14 产品描述: 专业的ASP.NET控件,原生的AJAX支持,丰富的UI效果。 产品特点: No JavaScript,No CSS, No UpdatePanel,No Web Services 备注: 本产品基于 ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor

三生石上 504
上一篇: ext window窗口
下一篇: ExtJs非Iframe框架加载页面实现
longlong821
博客等级 码龄16年 13粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值