Ext 中导航树的创建有两种方式:1、首先将所有的数据读出来,然后绑定到前台页面。2、每点击一个节点展开后加载子节点。在数据量比较小的时候使用第一种方式加载的会快一些,然而当数据量比较大的时候,我还是建议使用第二种方式的。这里我就来介绍一下第二种树的展示方式。

源码奉上:

 //创建model
Ext.define("treeModel",{
  extend:"Ext.data.Model",
  fields:["OUID","OUName"]
})
//创建Store
var treeStore=Ext.create("Ext.data.TreeStore",{
  model:"treeModel",
   proxy:{
    type:"ajax",
    url:"treeHandler.ashx",
    extraParams:{pid:0}
  },
  listeners:{
    beforeexpand:function(node)
    {
      this.proxy.extraParams.pid=node.raw.OUID;  
    }
  },
  autoLoad:true
});
//创建树
var tree=Ext.create("Ext.tree.Panel",{
   store:treeStore,
   userArrows:true,
   rootVisible:false,
   name:"OUID",
displayField:"OUName",
valueField:"OUID",
  listeners:{
    itemclick:function(view,rec)
      {
          
      }
  }
})

至此我们的一个动态树的前台页面就创建好了。

接下来我们需要做的就是在后台进行数据的处理,然后以json的格式发送给前台。

 public string GetTree(int pid)
{
  string json =string.Empty;
  DataTable dt=tree;
5   json=JsonConvert.SerializeObject(dt);
  return json;
}

注:参数 pid 是每次点击树的节点展开之后,向后台传递的当前节点的ID,这里作为子节点的父节点使用。

在将数据转换为json格式的时候我这里采用了Newtonsoft 中的序列化函数,它可以讲List,IList,DataTable 直接转换为json的格式。

ExtJS 创建动态加载树的更多相关文章

  1. ExtJs中动态加载机制研究(转)

    觉得写的太好了,怕弄丢了,转一下:http://extjs.org.cn/node/659 昨天我们team对于extjs的动态加载机制做了些深入研究,这里先share下controller加载的结果 ...

  2. C#动态加载树菜单

    在做权限系统的时候,需要有一个树形的菜单.下图就是一个树形菜单的样式 但问题是,我们可以实现写死的树形菜单.什么是写死的?就是在前台代码中写好要加载的树形菜单是什么样子的.但是我们权限系统的要求是动态 ...

  3. extjs Combobox动态加载数据问题,mode:local 还是remote

    var fabircTypeDs = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'province.do' }), reade ...

  4. 42.extjs Combobox动态加载数据问题,mode:local 还是remote

    问题: Java代码   var fabircTypeDs = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'province. ...

  5. easyui_tree 复选框 动态加载树

    controller动态获取单位用户树 #region 下拉树菜单 /// <summary> /// 获取工作人员树菜单 /// </summary> /// <par ...

  6. EasyUI Jquery 动态加载树,点击节点加载

    <script type="text/javascript"> $(function() { $(document).ready(function() { $.post ...

  7. jQuery 动态加载树

    本案例中用到了jquery的 tree插件,在本文的附件中可以下载 jsp代码: <%@ page language="java" import="java.uti ...

  8. Extjs Gridpanel 动态加载

    colMArray_ljdj=[smQd, {header : /*"代销机构代码"*/"机构", dataIndex : "dxjgdm" ...

  9. ExtJs 通过分析源代码解决动态加载Controller的问题

    通过分析源代码解决动态加载Controller的问题 最近在研究ExtJs(4.2.0)的MVC开发模式,具体Extjs的MVC如何使用这里不解释,具体参见ExtJs的官方文档.这里要解决的问题是如何 ...

随机推荐

  1. C#串口扫描

    1.传入serialport 和待显示串口的Commbox private void Search_AddSerialToComboBox(SerialPort MyPort, ComboBox My ...

  2. Hadoop基本原理之一:MapReduce

    1.为什么需要Hadoop 目前,一块硬盘容量约为1TB,读取速度约为100M/S,因此完成一块硬盘的读取需时约2.5小时(写入时间更长).若把数据放在同一硬盘上,且全部数据均需要同一个程序进行处理, ...

  3. MSSQL-资源地址

    1.SQL-SERVER客户端管理工具.下载地址 https://msdn.microsoft.com/en-us/library/mt238290.aspx?f=255&MSPPError= ...

  4. python代码风格规范

    类注释模板: :: class AnotherClass: """ 类注释 """ def method(self, arg1, arg2, ...

  5. IOS 文件管理 2

    IOS开发-文件管理(二) 五.Plist文件 String方式添加               NSString *path = [NSHomeDirectory( )  stringByAppen ...

  6. MVC 学习随笔(一)

    Model的绑定. (一)使用NameValueCollectionValueProvider C# 对NameValueCollectionValueProvider的支持是通过下面的类实现的 // ...

  7. asp.net mvc4 eui datagrid视图重写分页

    效果图 前端代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="vi ...

  8. unity3D对象的显示和隐藏

    SetActive/active/SetActiveRecursively 后两者比较旧,现在通常用第一个SetActive 必须先new一个gameobject对象用于实例化,然后再设置其activ ...

  9. 《Programming WPF》翻译 第5章 5.数据模板和样式

    原文:<Programming WPF>翻译 第5章 5.数据模板和样式 让我们想象一下我们想要实现TTT更有娱乐性的一个版本(这是大部分游戏中最重要的特色).例如,TTT的一种变体允许玩 ...

  10. ArcGIS API for Silverlight开发入门

    你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击 ...