Yii多条数据展示挂件之CGridView

Yii多条数据展示挂件CGridView的简单使用

第一种:

在User的控制器中

public function actionIndex() {

    $criteria = new CDbCriteria();

    //关联关系

    $criteria -> with = array(‘city‘,‘user_info‘);

    //创建查询数据的对象

    $dataProvider = new CActiveDataProvider(‘User‘,array(

      ‘criteria‘ => $criteria,

      ‘pagination‘=> array(

        ‘pageSize‘ =>5

      ),  

    ));

    //渲染视图

    $this->render(‘index‘,array(

      ‘dataProvider‘ => $dataProvider,

    ));

  }

在视图user/index.php中

$this->widget(‘zii.widgets.grid.CGridView‘,array(

    ‘dataProvider‘=> $dataProvider,

    ‘ajaxUpdate‘ =>true,  //是否开启ajax切换上下页

    ‘columns‘ => array(

      //定义全选和全不选

      array(

        ‘class‘=>‘CCheckBoxColumn‘,

        ‘name‘=>‘id‘,

        ‘value‘=>$data->id,

        ‘id‘=>‘select‘,

        ‘htmlOptions‘=>array(‘class‘=>‘checkbox_column‘),

        ‘selectableRows‘=>2,

      ),

      ‘id‘,

      ‘name‘,

      ‘city.name‘,

      array(

        ‘name‘=>‘create_time‘,

        ‘value‘=>‘data("Y-m-d H:i",$data->create_time)‘,

      ),

      array(

        ‘name‘=>‘user_info‘,

        ‘value‘=>‘$data->user_info->info‘,

      ),

      array(

        ‘column‘=>array(

          ‘class‘=>‘CButtonColumn‘,

          ‘template‘=>‘{view} {update} {delete} {log}‘,

          ‘deleteButtonImageUrl‘=>Yii::app()->request->baseUrl.‘/assets/images/button.jpg‘,

          ‘buttons‘=>array(

            ‘log‘=>array(

              ‘label‘=>‘日志‘,

              ‘url‘=>‘Yii::app()->controller->createUrl("/user/delete",array(‘id‘=>$data->id))‘,

              ‘imageUrl‘=>Yii::app()->request->baseUrl.‘/assets/images/log.jpg‘,

              ‘options‘=>array(‘target‘=>‘_blank‘),

              ‘visible‘=>‘$data->isShow()‘

            ),

          ),

        ),

      ),

    ),

  ));

在User.php的模型中 

public function isShow(){

     return $this->id % 2 == 0;

  }

第二种:

在UserController.php控制器中  

public function actionIndex() {

    $model = new User(‘search‘);

    //清空默认值

    $model -> unsetAttributes();

    //渲染视图

    $this->render(‘index‘,array(

      ‘model‘=>$model,

    ));

  }

在user/index.php视图中

$this->widget(‘zii.widgets.grid.CGridView‘,array(

    ‘dataProvider‘=> $model->search(),

    ‘ajaxUpdate‘ =>true,  //是否开启ajax切换上下页

    ‘columns‘ => array(

      //定义全选和全不选

      array(

        ‘class‘=>‘CCheckBoxColumn‘,

        ‘name‘=>‘id‘,

        ‘value‘=>$data->id,

        ‘id‘=>‘select‘,

        ‘htmlOptions‘=>array(‘class‘=>‘checkbox_column‘),

        ‘selectableRows‘=>2,

      ),

      ‘id‘,

      ‘name‘,

      ‘city.name‘,

      array(

        ‘name‘=>‘create_time‘,

        ‘value‘=>‘data("Y-m-d H:i",$data->create_time)‘,

      ),

      array(

        ‘name‘=>‘user_info‘,

        ‘value‘=>‘$data->user_info->info‘,

      ),

      array(

        ‘column‘=>array(

          ‘class‘=>‘CButtonColumn‘,

          ‘template‘=>‘{view} {update} {delete} {log}‘,

          ‘deleteButtonImageUrl‘=>Yii::app()->request->baseUrl.‘/assets/images/button.jpg‘,

          ‘buttons‘=>array(

            ‘log‘=>array(

              ‘label‘=>‘日志‘,

              ‘url‘=>‘Yii::app()->controller->createUrl("/user/delete",array(‘id‘=>$data->id))‘,

              ‘imageUrl‘=>Yii::app()->request->baseUrl.‘/assets/images/log.jpg‘,

              ‘options‘=>array(‘target‘=>‘_blank‘),

              ‘visible‘=>‘$data->isShow()‘

            ),

          ),

        ),

      ),

    ),

  ));

在User.php模型中:

public function search() {

    $criteria = new CDbCriteria;

    $criteria->with = ‘city‘;
    $criteria->with = ‘user_info‘;
    $criteria->compare(‘id‘, $this->id);
    $criteria->compare(‘name‘, $this->name, true);
    $criteria->compare(‘city_id‘, $this->city_id, true);
    $criteria->compare(‘create_time‘, $this->create_time, true);
    $criteria->compare(‘update_time‘, $this->update_time, true);

    return new CActiveDataProvider($this, array(
      ‘criteria‘ => $criteria,
      ‘pagination‘=>array(
        ‘pageSize‘=>5,
      ),
    ));
  }

  public function isShow(){

     return $this->id % 2 == 0;

  }
时间: 2024-11-09 00:33:57

Yii多条数据展示挂件之CGridView的相关文章

IOS开发——UI进阶篇—UITableView,索引条,汽车数据展示案例

一.什么是UITableView 在iOS中,要实现展示列表数据,最常用的做法就是使用UITableViewUITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳 UITableView的两种样式UITableViewStylePlainUITableViewStyleGrouped 二.如何展示数据 UITableView需要一个数据源(dataSource)来显示数据 UITableView会向数据源查询一共有多少行数据以及每一行显示什么数据等 没有设置数据源的

JavaScript如何一次性展示几万条数据

有一位同事跟大家说他在网上看到一道面试题:"如果后台传给前端几万条数据,前端怎么渲染到页面上?",如何回答? 于是办公室沸腾了, 同事们讨论开了, 你一言我一语说出自己的方案. 有的说直接循环遍历生成html插到页面上:有的说应该用分页来处理:还有的说这个面试官是个白痴, 哪有后台传几万条数据给前端这种情况的:我仔细思考了一下,先不论后端到底会不会白痴到传几万条数据给前端,假如真碰到这种情况,那么如果前端获取到数据以后, 直接将数据转换成html字符串,通过DOM操作插入到页面,势必导

yii 插入多条数据

如何用yii一次性插入多条数据很困扰,今天努力看看源码想到了一个办法, 如有错误请及时联系我及时改正,以防误导他人, 希望看这篇博文时大家紧做参考 废话少说看代码: $db = Yii::app()->db; $transaction = $db->beginTransaction(); $command = $db->createCommand(); try { $_files = array( array('name'=>'abc', 'size'=>'12000'),

WebForm数据展示 Web Repeater的使用

Repeater控件:(重复器)按某一格式展示数据 HeaderTemplate - 先执行,执行一次 FooterTemplate - 最后执行,执行一次 ItemTemplate - 在Header之后执行,有多少条数据绑定就执行多少次 AlterNatingItemTemplate - 交替项模板,与ItemTemplate交替执行 Repeater绑定数据: //集合结果指向Repeater1 Repeater1.DataSource = new StusData().SelectStu

ExtJS 4.2 业务开发(二)数据展示和查询

本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统,并提供查询.添加.修改的功能. 大致的目录结构如下: ShipMgrTab.js :船舶业务的入口. controller 目录:存放船舶业务的逻辑控制文件. model 目录:存放船舶业务的model文件. store 目录 :存放船舶业务的store文件. view 目录 :存放船舶业务的组件

sharepoint designer + XSLT快速构建数据展示页面

准备展示数据 准备一个测试列表,添加部分测试数据 生成母版页 1.用designer打开需要创建页面的网站 2.点击左侧"所有文件",将需要做为母板页的静态页面拖入designer内(相关的css和js文件也拖入,当然也可以建一个文件夹存在,不放在根目录) 3.在高级模式下打开此静态页面,另存为母板页 4.以高级模式编辑母板页,将需要动态展示的区域替换为占位符(多个占位符ID不要重复),替换之后保存. 使用母板页建立展示页面 1.基于母板页的建立展示页面 2.以高级模式打开展示页,使用

ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2

运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的index.jsp的代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% response.setHeade

PHP MySQL 插入多条数据

PHP MySQL 插入多条数据 使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三条新的记录: 实例 (MySQLi - 面向对象) <?php$servername = "localhost";$username = "username";$password = "password";$d

MVC模式下的数据展示:EasyUI的datagrid

我的数据库设计是一张老师表teacher,一张学生表student,一个教师对应多个学生,在学生一方建立外键; 还有一点想清楚,需要展示的数据是根据什么来的,是成功登陆的用户的id?还是直接展示所有的学生? student表 教师表: 我是习惯性的从后写到前,这里展示的是登录成功的老师下的学生信息 1 建立项目,建立好对应的包以及工具包 2建立好与数据库对应的实体类 package com.zr.model; public class Student { private int sid; pri