Yii Framework的CGridView工作原理 [ 技术分享 ]
首先通过下面这段代码,我们在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生成了操作列, 可以实现查看,修改,删除操作。
共 19 条回复
-
zk546113096 回复于 2011-04-27 10:29 举报
沙发啊 舰长威武..
-
zk546113096 回复于 2011-04-27 10:31 举报
我也不是盖的啊...
-
dongfengyee 回复于 2011-07-04 10:16 举报
正在深入研究。。。。。。
-
a289459798 回复于 2011-09-24 20:37 举报
array( 'name'=>'issystem', 'header'=>'模型', 'value'=>($data->issystem==1)?'系统':'自动', 'htmlOptions'=>array( 'style'=>'text-align:center', ), ),
使用$data 出错提示:没有定义变量data
-
zhong21jia 回复于 2011-12-28 21:22 举报
api 确实不怎么给力! 应该参考下TP,还有PHP手册,有使用说明,又有实例!
而yii 的手册,看起来真的很费力,里面的方法要自己一个一个去试试,慢慢才能积累起经验,但对于靠这个工作和吃饭的来说,工作的时间根本不会有太多的时间来摸索学习,不会做,就得挨骂或炒鱿鱼!我是身有体会啊!
╃巡洋艦㊣ 北京
注册时间:2010-11-21
最后登录:6小时前
在线时长:1674小时13分
最后登录:6小时前
在线时长:1674小时13分
- 粉丝1369
- 金钱76368
- 威望845
- 积分101558