zii.widgets.grid.cgridview 列表中js 超出字数省略号太多怎么用.省略

Yii视图CGridView实现操作按钮定义地址示例--PHP中文网QQ群微信公众号Yii视图CGridView实现操作按钮定义地址示例本文实例讲述了Yii视图CGridView实现操作按钮定义地址的方法。分享给大家供大家参考,具体如下:&?php $this-&widget('zii.widgets.grid.CGridView', array(
'id'=&'mem-sub-grid',
'dataProvider'=&$model,
'columns'=&array(
'zpc_catname',
array('name'=&'inputtime',
'value'=&'date(&y-m-d H:m&,$data-&inputtime)',
'htmlOptions'=&array('class'=&'t_c'),
'class'=&'CButtonColumn',
//注意URL规则
'updateButtonUrl'=&'Yii::app()-&controller-&createUrl(&updaterole&,array(&id&=&$data-&primaryKey))',
'deleteConfirmation'=&'确认删除',//删除操作弹框提示的信息
'buttons'=&array(
'view'=&array('visible'=&'false'),
//注意URL规则,
'dalete'=&array('url'=&'Yii::app()-&controller-&createUrl(&deleterole&,array(&id&=&$data-&primaryKey))')
?&希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。更多Yii视图CGridView实现操作按钮定义地址示例相关文章请关注PHP中文网!760点赞收藏分享:&猜你喜欢12345678910
PHP中文网:独家原创,永久免费的在线,php技术学习阵地!Copyright
All Rights Reserved | 皖B2-QQ群:关注微信公众号Yii框架里用grid.CGridView调用pager扩展不显示最后一页按钮的解决 - yJken的博客 - 推酷
Yii框架里用grid.CGridView调用pager扩展不显示最后一页按钮的解决 - yJken的博客
有如下一例,调用zii.widgets.grid.CGridView显示Blog信息,代码如下:
1 $this-&widget('zii.widgets.grid.CGridView',
'id'=&'blog-grid',
'dataProvider'=&$model-&search(),
'filter'=&$model,
'pager'=&array(
'class'=&'CLinkPager',//定义要调用的分页器类,默认是CLinkPager
// 'cssFile'=&false,//定义分页器的要调用的css文件,false为不调用
//'header'=&'转往分页:',//定义的文字将显示在pager的最前面
//'footer'=&'尾页',//定义的文字将显示在pager的最后面
'firstPageLabel'=&'首页',//定义首页按钮的显示文字
'lastPageLabel'=&'尾页',//定义末页按钮的显示文字
'nextPageLabel'=&'下一页',//定义下一页按钮的显示文字
'prevPageLabel'=&'前一页',//定义上一页按钮的显示文字
'htmlOptions'=&array('class'=&'yiiPager'),
'columns'=&array(
'name'=&'pid',
'value'=&'$data-&pcate-&title',
'name'=&'cid',
'value'=&'$data-&cate-&title',
'class'=&'CButtonColumn',
如代码所示,这里已经定义了firstPageLabel 与 lastPageLabel,但是预览的时候就是不显示,后来通过Firebug发现,是css定义的问题:
* Hide first and last buttons by default.
ul.yiiPager .first,
ul.yiiPager .last
display:none;
Yii 默认是把“首页”,“尾页”两个按钮隐藏不显示的。
可以通过修改这个样式文件,问题是,这个样式文件是在Yii 的&assets&文件夹下的,也就是 Yii 的资源文件夹,该文件夹下的文件都是在创建webapp时,自动生成,如果你现在去把这个文件夹的所有文件全部删除,你再通过浏览器打开这个webapp,刷两次试试,是不是那些被删除的文件又重新被生成了,这样修改治标不治本。
只有找到模板文件才是根本,搜一下,发现这个文件就在Yii框架的 /web/widgets/pagers/pager.css 这个路径下,修改这个文件,就万事大吉了,去删除&assets&文件夹下的文件,访问一下网站,就是想要的了.
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致Yii CGridView 基本使用 - 初展身手 _Linux编程_Linux公社-Linux系统门户网站
你好,游客
Yii CGridView 基本使用
来源:Linux社区&
作者:jcjc918
在 Yii 自动生成的代码里,我们总能在 admin 的界面看到 CGridView 的身影。这是一个很好用的展示数据的表格控件,用的好可以明显地加快开发进度。下面就让我们来探索一下 CGridView 的基本使用吧:
Yii 用户登陆机制&
Yii中引入js和css文件&
Yii 不完全解决方案&
简单起见,我们的代码就用 Yii demo 中的 blog 例子来做修改。首先,这是修改后的部分 MySQL 语句:
drop table if exists `tbl_user`;CREATE TABLE tbl_user(&`user_id` INTEGER NOT NULL AUTO_INCREMENT comment '主键',&`username` VARCHAR(128) NOT NULL comment '用户名',&`nickname` VARCHAR(128) NOT NULL comment '昵称',&`password` VARCHAR(128) NOT NULL comment '密码',&`email` VARCHAR(128) NOT NULL comment '邮箱',&`is_delete` tinyint not null default 0 comment '删除标志',&unique key(`username`),&primary key (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment='用户表';
drop table if exists `tbl_post`;CREATE TABLE tbl_post(&`post_id` INTEGER NOT NULL AUTO_INCREMENT comment '主键',&`title` VARCHAR(128) NOT NULL comment '标题',&`content` TEXT NOT NULL comment '文章内容',&`tags` TEXT comment '标签',&`status` INTEGER NOT NULL comment '状态,0 = 草稿,1 = 审核通过,-1 = 审核不通过,2 = 发布',&`create_time` INTEGER comment '创建时间',&`update_time` INTEGER comment '更新时间',&`author_id` INTEGER NOT NULL comment '作者',&`is_delete` tinyint not null default 0 comment '删除标志',&CONSTRAINT `post_ibfk_1` FOREIGN KEY (author_id)& REFERENCES tbl_user (`user_id`) ON DELETE CASCADE ON UPDATE RESTRICT,&primary key (`post_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment='日志表';
两个表一个存储作者信息一个存储日志,其中日志有一个外键关联到 user。两个表里面的 is_delete 字段是标志该条记录是否被删除,0 为未删除,1 为已删除。让我们看一下用 gii 生成的 Post 类的 relation 方法:
&/**& * @return array relational rules.& */&public function relations()&{& // NOTE: you may need to adjust the relation name and the related& // class name for the relations automatically generated below.& return array(& &'comments' =& array(self::HAS_MANY, 'Comment', 'post_id'),& &'author' =& array(self::BELONGS_TO, 'User', 'author_id'),& );&}
其中的 author 外键作为 BELONGS_TO 关系存在,符合我们的预期。
说了这么多,看看自动生成的 Post 中 admin.php 里 CGridView 的代码吧:
&?php $this-&widget('zii.widgets.grid.CGridView', array(&'id'=&'post-grid',&'dataProvider'=&$model-&search(),&'filter'=&$model,&'columns'=&array(& 'post_id',& 'title',& 'content',& 'tags',& 'status',& 'create_time',& 'update_time',& 'author_id',& 'is_delete',& array(& &'class'=&'CButtonColumn',& ),&),)); ?&
看!虽然我们什么都没写,但这就是这个控件的最基础使用了。dataProvider 是由 model 里面的 search 函数提供的数据,filter...暂时看不出这里的作用,columns 控制展示的每一列,其中最后一项的 CButtonColumn 向我们展示了三个按钮,分别是 查看& 更新 和 删除。
接下来我们一点点地改造.
用 CGridView 展示我们真正要的数据形式:
很多时候,数据库里的东西不适合直接展示给用户看,需要我们进行一定的处理之后才适合阅读。但在这里不经修改的话 CGridView 只会把数据库的值原封不动地呈现,所以,我们应该在相应的字段进行修改。比如 is_delete 字段,数据库里存放的是 0 和 1,但是在这里阅读就不太好了,我们应该改成 1 展示 '是' ,0展示 '否'。看看下面的代码,我们用了一个 array,两个键分别是 name 和 value,name 对应的要填写该 model 拥有的字段,而 value 是你想展示的数据,这里可以写成一个 php 语句,作为可以执行的代码。看到这里,是不是觉得对这个 value 我们可以做很多东西?有的同学可能要问,如果我想执行的代码很长,难道都写在 value 里面?。。。我说同学,你不会在其他地方写成一个函数然后在这里调用它吗??
&?php $this-&widget('zii.widgets.grid.CGridView', array(&'id'=&'post-grid',&'dataProvider'=&$model-&search(),&'filter'=&$model,&'columns'=&array(& 'post_id',& 'title',& 'content',& 'tags',& 'status',& 'create_time',& 'update_time',& 'author_id',& 'is_delete',& & & & array(& & & & & & 'name'=&'is_delete',& & & & & & 'value'=&'is_delete?"是":"否"' //value 是可以执行 php 语句的哦& & & & )& array(& &'class'=&'CButtonColumn',& ),&),)); ?&
除此之外,还有一些常用的选项,都可以在 array 里面填写,下面是比较常见的使用方式(其他部分代码省略):
& & & & array(& & & & & & 'name'=&'is_delete',& & & & & & 'value'=&'is_delete?"是":"否"' //value 是可以执行 php 语句的哦& & & & & & 'filter' =& array(0=&'否',1=&'是'), //自己定义搜索过滤的方式,这里为 是 和 否 的下拉菜单& & & & & & 'htmlOptions'=&array('class'=&'delete'),& //可以定义 html 选项,这里是定义了带一个 delete 的类& & & & ),
上面我们用 name 的话那是 model 里原来就有的字段,如果我们想展示自己定义的新内容呢,用 header :
& & & & array(& & & & & & 'header'=&'备注',& & & & & & 'value'=& 'display your data'& & & & ),
PS:在这里只谈我常用的部分,详细请看文档:
更多详情见请继续阅读下一页的精彩内容:
【内容导航】
相关资讯 & & &
& (02月15日)
& (07/19/:52)
& (07/12/:39)
& (08/06/:30)
& (07/19/:19)
& (05/11/:51)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款3029人阅读
添加 关联表 相关字段的搜索:
& & &先说一句,我们在这里只谈 ”一对多“ 的关联搜索,首先,不要忘了我们的数据库,忘记的同学请戳这里:,可以看到在 tbl_post 中是有一个外键关联到 tbl_user 表的,用以查找作者的相关信息。建了数据库之后,看看我们生成的 Yii 代码的 POST 的 Model, 里面的 realtion
如下(忽略 comment 的):
* @return array relational rules.
public function relations()
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'comments' =& array(self::HAS_MANY, 'Comment', 'post_id'),
'author' =& array(self::BELONGS_TO, 'User', 'author_id'),
& & 可以看到 POST 和 USER 表可以通过 author 键进行访问,例如: $model-&author-&nickname,而且 这里是 BELONGS_TO 关系。
& & 说了这么多,我们的需求究竟是什么?....
& & &产品经理推了推眼镜:”我们要在日志的后台管理界面加一个功能,可以通过作者名称搜索到相应的文章。这个比较急,今晚就要完成。“
& & 淡定淡定,不就是改需求吗。忽略进度要求,我们研究一下究竟要做什么。
& & 其实很简单的,不就是在 POST 的 admin 界面中增加一列作者名称,然后可以通过作者名的 模糊搜索 去找到对应日志吗?看看代码,要是通过 作者 id 去搜索不就简单了吗?不过这样确实不太友好...如果是展示作者名字而已不也是很简单吗?加一个 header 然后 value 是 $data-&author-&username, 问题是这样只能展示,不能进行搜索...哎,好苦恼。
& & 淡定淡定,不就是多个搜索吗?来,让我告诉你怎么做。
& & 首先,我们进入 POST 的 model,在一开始的地方添加一个属性:
class Post extends CActiveRecord
public $ //添加一个 public 属性,代表作者名
& & 然后改一下 Model 里面 search 的代码,改动部分都已经加了注释:
public function search()
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbC
$criteria-&with = array('author');
//添加了和 author 的渴求式加载
$criteria-&compare('post_id',$this-&post_id);
$criteria-&compare('title',$this-&title,true);
$criteria-&compare('content',$this-&content,true);
$criteria-&compare('tags',$this-&tags,true);
$criteria-&compare('status',$this-&status);
$criteria-&compare('create_time',$this-&create_time);
$criteria-&compare('update_time',$this-&update_time);
$criteria-&compare('author_id',$this-&author_id);
//这里添加了一个 compare, username 是 User 表的字段,$this-&name 是我们添加的属性,true 为模糊搜索
$criteria-&compare('username',$this-&name,true);
return new CActiveDataProvider($this, array(
'criteria'=&$criteria,
& & 然后在 view 里面,就是 post 文件夹的 admin.php ,CGridView 改为下面代码:
&?php $this-&widget('zii.widgets.grid.CGridView', array(
'id'=&'post-grid',
'dataProvider'=&$model-&search(),
'filter'=&$model,
'columns'=&array(
'post_id',
'title',
'content',
'tags',
'status',
'create_time',
'update_time',
'author_id',
/*下面就是添加的代码啊*/
'name'=&'作者名称',
'value'=&'$data-&author-&username',
//定义展示的 value 值
'filter'=&CHtml::activeTextField($model,'name'), //添加搜索 filter
'class'=&'CButtonColumn',
& & 你是不是发现现在有了搜索框但是不起作用呢?哈哈,所以我们说文章要坚持看到最后。我们要做的最后一步,就是在 rule 里面,把 name 属性加入到安全搜索字段中,要不然会被 Yii 认为是不安全字段而过滤掉的。看,就在下面函数的最后一行,safe 前面多了个 name ....
public function rules()
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('title, content, status, author_id', 'required'),
array('status, create_time, update_time, author_id', 'numerical', 'integerOnly'=&true),
array('title', 'length', 'max'=&128),
array('tags', 'safe'),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('post_id, title, content, tags, status, create_time, update_time, author_id, name', 'safe', 'on'=&'search'),
& & 这个功能我们已经完成了~~哪里需要等到晚上~~不要告诉产品经理,先来一集暴漫.....
& & (好吧,我承认我写得这么罗嗦是因为文青病又犯了,默默治疗去....)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:625639次
积分:4936
积分:4936
排名:第4738名
原创:123篇
评论:206条
阅读:7300
阅读:18072
阅读:175916
给我个小红包吧
(2)(1)(1)(1)(1)(1)(1)(2)(4)(3)(4)(2)(3)(4)(4)(3)(4)(2)(4)(1)(1)(2)(1)(1)(1)(6)(5)(60)4613人阅读
Yii技术(40)
CGridView列表实例&!-- 列表 --&
&?php $this-&widget('zii.widgets.grid.CGridView', array(
'id'=&'words-grid',
'dataProvider'=&$model-&search(),//数据源
'filter'=&$model,//设置过滤器,筛选输入框
'columns'=&array(
'class'=&'CCheckBoxColumn',//选择框
'htmlOptions'=&array('width'=&&30px&),
'zw_title',
array('name'=&'zw_level',
'value'=&'Words::model()-&getLevel($data-&zw_level)',//数据转换
'zw_replaceword',
'zw_listorder',
array('name'=&'inputtime',
'value'=&'date(&Y-m-d&,$data-&inputtime)',//格式化日期
'class'=&'CButtonColumn',
'buttons'=&array('view'=&array(
'visible'=&'false'//查看按钮设为不可见
修改基类,定义底部功能菜单(152) public function renderFooterCell()
if(trim($this-&footer)!==''){
echo CHtml::openTag('td',$this-&footerHtmlOptions);
$this-&renderFooterCellContent();
echo '&/td&';
}修改视图,实现底部功能按钮列表
'columns'=&array(
'class'=&'CCheckBoxColumn',
'footer'=&'&button onclink=&deleteAll()&&button&/button&
&button onclink=&refashAll()&&button&/button&',
'footerHtmlOptions'=&array('colspan'=&5),
'selectableRows'=&2,
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:482566次
积分:4800
积分:4800
排名:第4947名
原创:96篇
评论:38条
(2)(1)(1)(3)(4)(9)(3)(10)(15)(12)(1)(11)(10)(17)}

我要回帖

更多关于 a标签字数过长省略号 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信