zoukankan      html  css  js  c++  java
  • 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的格式。

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/dolphin-gjh/p/4092514.html
Copyright © 2011-2022 走看看