easyUI的理解

    jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发
者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css
样式有深入的了解,开发者需要了解的只有一些简单的html标签。

1.接触 EasyUI 两天了,对它的方法调用一直是不太理解,比如:
    $('#tt').tabs('add',
            {
              title: 'new tab',
              selected: false 
              //... 
    });  
    这是一个选项卡调用它的add方法,乍一看跟java的对象掉方法的思想差别很大,今天再来看,发现
    其实就是对象调方法,分析如下:
        1. $('#tt')这个是对象,        
        2. 'add'这个是方法,
        3.  .tabs这个又算是什么呢?
    是这样的,对象还是那个对象,方法还是那个方法,只是在 EasyUI 中它不像java那样对象和方法
    之间的联系紧密性那么高,而在 EasyUI 中一个对象调方法,由于对象和方法的联系不够紧密,导致
    一个对象调方法时,不能准确知道是调用的那个类的方法,所以就需要指明是哪个类的方法,所以
    .tabs 就是指明了后边调的方法是 tabs(选项卡)的方法,这样就解释清楚了 EasyUI 调方法的原理;
    
2.    EasyUI 中的依赖--- "继承";
    跟java中的继承对应,EasyUI中提供类的依赖 当A类依赖B类时,A的对象就具有了B类中的方法,这也就
    便于功能的扩展;
    
3.  理解了1. 就明白了对象调方法,
    理解了2. 就明白了对象调依赖 父类的方法; 这样在需要一些功能在本类中找不到时,可以尝试从父类中找;
    
4.功能更强大的树形插件 zTree(不属于easyUI)
    1. 将json数据解析成树形结构:(两种json)
        1.标准json数据
            标准的 JSON 数据需要嵌套表示节点的父子包含关系

            例如:
            var nodes = [
                {name: "父节点1", children: [
                    {name: "子节点1"},
                    {name: "子节点2"}
                ]}
            ];

            默认展开的节点,请设置 treeNode.open 属性
            无子节点的父节点,请设置 treeNode.isParent 属性
            其他属性说明请参考 API 文档中 "treeNode 节点数据详解
        
        2.简单json数据
        简单模式的 JSON 数据需要使用 id / pId 表示节点的父子包含关系,如使用其他属性设置父子关联关
        系请参考 setting.data.simple 内各项说明

            例如:
            var nodes = [
                {id:1, pId:0, name: "父节点1"},
                {id:11, pId:1, name: "子节点1"},
                {id:12, pId:1, name: "子节点2"}
            ];


5. 使用zTree生成树形结构的步骤:            
    1. 在html的<body>中给树形结构找一个放置位置: 提供一个<ul>标签
        <ul id="tree" class="ztree" style="width:260px; overflow:auto;"></ul>
    
    2. 在js代码中:    
        1. setting 配置示例:
            var setting = {
                view: {
                    dblClickExpand: false,
                    showLine: true,
                    selectedMulti: false
                },
                data: {
                    simpleData: {
                        enable:true,  //启用简单数据格式;
                        idKey: "id",
                        pIdKey: "pId",
                        rootPId: ""
                    }
                },
                callback: {  //回掉函数 ,相当于给每一个节点绑定监听
                    beforeClick: function(treeId, treeNode) {
                        var zTree = $.fn.zTree.getZTreeObj("tree");
                        if (treeNode.isParent) {
                            zTree.expandNode(treeNode);
                            return false;
                        } else {
                            demoIframe.attr("src",treeNode.file + ".html");
                            return true;
                        }
                    }
                }
            };
        2. zNodes 节点配置示例:
            var zNodes =[
            {id:1, pId:0, name:"[core] 基本功能 演示", open:true},
            {id:101, pId:1, name:"最简单的树 --  标准 JSON 数据", file:"core/standardData"},
            {id:102, pId:1, name:"最简单的树 --  简单 JSON 数据", file:"core/simpleData"},
            {id:103, pId:1, name:"不显示 连接线", file:"core/noline"},
            {id:104, pId:1, name:"不显示 节点 图标", file:"core/noicon"},
            {id:105, pId:1, name:"自定义图标 --  icon 属性", file:"core/custom_icon"},
            {id:106, pId:1, name:"自定义图标 --  iconSkin 属性", file:"core/custom_iconSkin"},
            {id:107, pId:1, name:"自定义字体", file:"core/custom_font"},
            {id:115, pId:1, name:"超链接演示", file:"core/url"},];
        
        3. 生成树形结构:
            var t = $("#tree");
            t = $.fn.zTree.init(t, setting, zNodes);
        
        
      

1.form插件中 combox的知识点,url:数据获取; valueField:数据接收;textField:显示的值;
    <input id="cc" name="dept" value="aa">

    $('#cc').combobox({ 

    url:'combobox_data.json', 

    valueField:'id', 

    textField:'text' 

    });
2. form的load方法:
        加载记录填表。数据参数可以是一个字符串或一个对象类型,当字符串作为一个远程URL,否则作为一个当地的记录。 
    代码示例:

    $('#ff').form('load','get_data.php');    // load from URL  $('#ff').form('load',{      
        name:'name2',      
        email:'[email protected]',      
        subject:'subject2',      
        message:'message2',      
        language:5  
    });
    
2. datagrid中的load方法的使用;

    加载和显示第一页行。如果指定的param”,它将取代与queryParams 的属性。通常一个查询通过一些参数,这种方法可以调用从服务器加载新数据。 
    $('#dg').datagrid('load',{
        code: '01',
        name: 'name01'
      });  


3.root.get("属性名") 获得的是属性的路径path ,这个path是什么?

4. QBC查询出现的价值:
    查询语句的生成 用编码的方式来生成,这样带来了一个好处就是最终生成的Sql语句动态化;
    简单一句化就是 编码本身的动态化这个特性用到SQL语句的生成,使一些动态查询得到了实现,
    不然你要动态查询,单纯用sql语句来实现动态查询,或者从逻辑上难于实现,或者代码量很庞杂;
    
5.fastjson 中的属性过滤标签:
    /*
     * 第一种:在对象响应字段前加注解,这样生成的json也不包含该字段。
     * @JSONField(serialize=false)  
     * private String name;  
     */

    /*
     * 第二种:在对象对应字段前面加transient,表示该字段不用序列化,即在生成json的时候就不会包含该字段了。
     * private transient  String name;  
     */

    /*
     * 第三种:使用fastjson的拦截器
     * PropertyFilter profilter = new PropertyFilter(){  
      
                @Override  
                public boolean apply(Object object, String name, Object value) {  
                    if(name.equalsIgnoreCase("last")){  
                        //false表示last字段将被排除在外  
                        return false;  
                    }  
                    return true;  
                }  
                  
            };  
            json = JSON.toJSONString(user, profilter);  
            System.out.println(json);   
     */

    /*
     * 第四种,直接填写属性
     * SimplePropertyPreFilter filter = new SimplePropertyPreFilter(TTown.class, "id","townname");  
        response.getWriter().write(JSONObject.toJSONString(townList,filter));   
     */

6. ocupload one click upload (一键上传)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章