热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP开发框架YiiFramework教程(19)UI组件TreeView示例

PHP开发框架YiiFramework教程(19)UI组件TreeView示例

CTreeView用来显示具有层次结构的数据,使用TreeView 通过设置Data属性。Data为具有下面结构的数组:

ext: string, 树节点的文本.

expanded: boolean,可选,表示该节点是否展开.

id: string, 可选,该节点ID.

hasChildren: boolean, 可选,缺省为False,当为True表示该节点含有子节点.

children: array,可选,子节点数组。.

htmlOptions: array, HTML选项。

到目前为止我们还没有介绍读取数据库,因此本例使用Hard Code的数据如下:

array(    
  'text' =>  'World:4' ,    
  'id' =>  '27' ,    
  'hasChildren' =>  true,    
  'children' =>    
    array
      (    
        array(    
          'text' =>  'Europa:3' ,    
          'id' =>  '1' ,    
          'hasChildren' =>  true,    
          'children' =>    
            array
        (    
            array(    
                'text' =>  'Germany:3' ,    
                'id' =>  '3' ,    
                'hasChildren' =>  true,    
                'children' =>    
                array
                (    
                    array(    
                        'text' =>  'Munich:0' ,    
                        'id' =>  '15' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Stuttgart:0' ,    
                        'id' =>  '16' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Berlin:0' ,    
                        'id' =>  '5' ,    
                        'hasChildren' =>  false,    
                        )    
                    )),    
            array(    
                'text' =>  'Norway:3' ,    
                'id' =>  '2' ,    
                'hasChildren' =>  true,    
                'children' =>    
                array
                (    
                    array(    
                        'text' =>  'Stavanger:0' ,    
                        'id' =>  '10' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Oslo:0' ,    
                        'id' =>  '12' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Bergen:0' ,    
                        'id' =>  '11' ,    
                        'hasChildren' =>  false,    
                        ))),    
            array(    
                'text' =>  'United Kingdom:2' ,    
                'id' =>  '4' ,    
                'hasChildren' =>  true,    
                'children' =>    
                array(    
        
                    array(    
                        'text' =>  'London:0' ,    
                        'id' =>  '13' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Manchester:0' ,    
                        'id' =>  '14' ,    
                        'hasChildren' =>  false,    
                        ))),    
            array(    
                'text' =>  'Asia:3' ,    
                'id' =>  '7' ,    
                'hasChildren' =>  true,    
                'children' =>    
                array
                (    
                    array(    
                        'text' =>  'Japan:0' ,    
                        'id' =>  '18' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'China:0' ,    
                        'id' =>  '20' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Indonesia:0' ,    
                        'id' =>  '19' ,    
                        'hasChildren' =>  false,    
                        )    
                    )),    
            array(    
                'text' =>  'America:4' ,    
                'id' =>  '9' ,    
                'hasChildren' =>  true,    
                'children' =>    
                array
                (    
                    array(    
                        'text' =>  'Canada:0' ,    
                        'id' =>  '23' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'United States:0' ,    
                        'id' =>  '24' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Mexico:0' ,    
                        'id' =>  '25' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Argentina:0',    
                        'id' =>  '26' ,    
                        'hasChildren' =>  false,    
                        ))),    
            array(    
                'text' =>  'Africa:2' ,    
                'id' =>  '8' ,    
                'hasChildren' =>  true,    
                'children' =>    
                array(    
        
                    array(    
                        'text' =>  'Kenya:0' ,    
                        'id' =>  '22' ,    
                        'hasChildren' =>  false,    
                        ),    
                    array(    
                        'text' =>  'Tanzania:0' ,    
                        'id' =>  '21' ,    
                        'hasChildren' =>  false    
                        )    
                    )    
                )    
            )))));

这里为每个节点的文本都添加了一个链接,同时也演示了使用JQuery响应节点的点击事件,这是 通过客户端Javascripts来实现的。

修改View定义

$cs=Yii::app()->clientScript;    
$cs->registerScript('menuTreeClick', "    
    jQuery('#menu-treeview a').click(function() {    
        alert('Node #'+this.id+' was clicked!');    
        return false;    
    });    
");    
        
$this->widget('CTreeView',array(    
    'id'=>'menu-treeview',    
    'data'=>DataModel::getDummyData(),    
        
    'control'=>'#treecontrol',    
    'animated'=>'fast',    
    'collapsed'=>true,    
    'htmlOptions'=>array(    
                'class'=>'filetree'
                )    
            ));    
?>

clientScript的registerScript用来做客户端定义Javascripts。

PHP开发框架Yii Framework教程(19) UI 组件 TreeView示例



推荐阅读
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
  • 本文介绍了使用jQuery实现图片预加载和等比例缩放的方法,同时提供了演示和相关代码。该方法可以重置图片的宽度和高度,并使图片在水平和垂直方向上居中显示。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • 获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法
    本文介绍了获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法,包括使用jQuery的选择器和遍历方法。通过这些方法,可以方便地获取到所需的元素,并进行相应的操作。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • jQuery :nthchild前有无空格的区别
    :nth-child(index)子元素过滤选择器的描述是:选取每个父元素下的弟index个子元素,index从1开始。然后,我写了如下h ... [详细]
  • 025_JavaScript数组方法
    1.把数组转换为字符串1.1.toString()方法1.1.1.toString()方法把数组转换为数组值(逗号分隔)的字符串,并返回结果。1.1.2.语法arrayOb ... [详细]
author-avatar
手机用户2702932894
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有