╃巡洋艦㊣ 2011-04-27 10:28:38 7232次浏览 19条回复 1 0 0

首先通过下面这段代码,我们在action中生成了一个dataprovider可以提供给view中的widget调用

$userdata = new cactivedataprovider('user', array(
  'pagination'=>array(
    //所以关于pagination的设置都可以在这里进行
    'pagesize'=>10, 
  ),
  'sort' => array(
    //所以关于csort的设置都可以在这里进行
    'defaultorder' => 'username'
  )
));

然后,我们可以在view中调用cgridview widget

$this->widget('zii.widgets.grid.cgridview', array(
  'dataprovider' => $userdata,
  'columns' => array(
    'id', 
    'username', 
    'fullname', 
      array(
        'datafield' => 'email',
        'dataexpression' => 'chtml::mailto($data->email)',
        'htmlOptions'=>array(
          'width'=>'60',
          'style'=>'text-align:center',
        )), 
        last_login',
        array(
          'class' => 'crudcolumn', 
          'header' => '操作',
          'template'=>'{view}{update}{delete}',   //要显示的按钮,如果需要特殊的按钮,可以找到ButtonColumn类,重新定义
      )
    ),
));

代码中我们看到了dataprovider这个属性使用了$userdata变量。 在columns属性中我们对需要显示的字段和显示方式做了一定的设置: 在这里我们要求显示 'id', 'username', 'fullname', 'email', 'last_login' 几个字段.

在email字段中,我们使用了具体设置,用表达式的方式为email制作了链接效果。 在表达式中我们可以用: $grid (当前gridview实例), $row(当前行,index从0开始计算), $data(当前行的model实例), $this(当前列的实例)。

在最后我们用crudcolumn生成了操作列, 可以实现查看,修改,删除操作。

您需要登录后才可以回复。登录 | 立即注册