ExtJS 创建动态加载树

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

源码奉上:

 1 //创建model
 2 Ext.define("treeModel",{
 3   extend:"Ext.data.Model",
 4   fields:["OUID","OUName"]
 5 })
 6 //创建Store
 7 var treeStore=Ext.create("Ext.data.TreeStore",{
 8    model:"treeModel",
 9    proxy:{
10     type:"ajax",
11     url:"treeHandler.ashx",
12     extraParams:{pid:0}
13   },
14   listeners:{
15     beforeexpand:function(node)
16     {
17       this.proxy.extraParams.pid=node.raw.OUID;  
18     }
19   },
20   autoLoad:true
21 });
22 //创建树
23 var tree=Ext.create("Ext.tree.Panel",{
24    store:treeStore,
25    userArrows:true,
26    rootVisible:false,
27    name:"OUID",
28     displayField:"OUName",
29     valueField:"OUID",
30   listeners:{
31     itemclick:function(view,rec)
32       {
33           
34       }
35   }
36 })

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

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

1 public string GetTree(int pid)
2 {
3    string json =string.Empty;
4   DataTable dt=tree;
5   json=JsonConvert.SerializeObject(dt);
6   return json;
7 }

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

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

时间: 2024-11-05 11:24:26

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

ExtJS 动态加载树treepanel

先来看看效果: 一.新建一个TreeStore,并添加根节点 Ext.define('Demo1.store.TreeDemoStore', { extend: 'Ext.data.TreeStore', root: { text: '目录树', id: 0 } }); 二.在view中添加treepanel,绑定TreeDemoStore Ext.define('Demo1.view.MyViewport', { extend: 'Ext.container.Viewport', initCo

jQuery 动态加载树

本案例中用到了jquery的 tree插件,在本文的附件中可以下载 jsp代码: <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request

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

觉得写的太好了,怕弄丢了,转一下:http://extjs.org.cn/node/659 昨天我们team对于extjs的动态加载机制做了些深入研究,这里先share下controller加载的结果. 以service registry portlet为例: 比如,在 liferay-portlet.xml中定义了: 所以我们的js的入口点是app.js,这其中创建了Ext.application并且声明了动态加载controller: view source print? 1.Ext.app

Extjs学习----------动态加载js文件(减轻浏览器的压力)

动态加载js文件可以减轻浏览器的压力,本例使用了Ext.window.Window组件,该组件的学习地址:http://blog.csdn.net/z1137730824/article/details/38538277 具体实现步骤: (1)建立dynamic.jsp文件 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String

easyui_tree 复选框 动态加载树

controller动态获取单位用户树 #region 下拉树菜单 /// <summary> /// 获取工作人员树菜单 /// </summary> /// <param name="addid"></param> /// <param name="unitid"></param> /// <returns></returns> public string GetUs

左侧动态加载树,右侧显示树节点的信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html><!--[if IE 8]> <html lang="en" class="ie8 no-js"> <![endif]--><!--[if IE 9]> <html lang="en

jquery的ztree插件的使用(完成动态加载树型结构)

第一步:在left.jsp中 <script language="JavaScript" src="${pageContext.request.contextPath }/script/jquery-1.4.2.js"></script> <script language="JavaScript" src="${pageContext.request.contextPath }/script/jquery-

Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库     本文地址:http://techieliang.com/2017/12/680/ 文章目录 1. 动态连接库创建与使用  1.1. 项目创建  1.2. 调用-使用.h文件 2. 静态库创建及使用  2.1. 创建  2.2. 使用 3. QLibrary动态加载动态库  3.1. 介绍  3.2. 范例  3.3.

ExtJS4.2 仅需配置URL动态加载GridPanel列(带分页)

最近做ExtJS一直想做个傻瓜式的GridPanel,今天折腾了一天,从GitHub找到的老外写的解决方案, 在他的基础上做了一些改动,增加了分页,增加了columns手动配置(原本只能动态生成),大家有兴趣可以自由扩展,我做了很详细的注释 效果图如下,仅需在html页面引入ext.all,并创建自定义控件,配置url即可创建带分页效果的GirdPanel 代码: 效果图: 一.动态加载自定义控件 自定义脚本包括两部分:DynamicGrid.js和DynamicReader.js 将Ext目录