13620867 2012-07-16 21:30:32 3574次浏览 3条回复 0 0 0

找了好一会 找不到资料

我就去看了一下源代码 不知道修改CButtonColumn中的renderButton 这个方法可以不可以 请指教下

echo CHtml::link(CHtml::image($button['imageUrl'],$label),$url,$options); 改成 echo CHtml::link(CHtml::image($button['imageUrl'],$label,$options),$url,$options);

然后

array(
  'class'=>'CButtonColumn',
  'template'=>'{update} {delete}',
  'updateButtonOptions'=>array('title'=>'修改'),
  'deleteButtonOptions'=>array('title'=>'删除'),
  'header'=>'操作',
    'buttons' => array(
      'delete'=>array(
          'imageUrl'=>Yii::app()->baseUrl.'/images/del.jpg',//改变删除按钮的图片 如果留空 则显示文字 'deleteButtonOptions'=>array('title'=>'删除'),
          'options'=>array('width'=>'20px','height'=>'20px'),
      ),
      'update'=>array(
          'imageUrl'=>Yii::app()->baseUrl.'/images/del.jpg',
          'options'=>array('width'=>'50px','height'=>'20px'),
      ),
    ),
),
  • 回复于 2012-07-16 21:33 举报

    CGridView 显示列表数据,因为我想那个delete,update button的图片,结果图片是换了,大小不知道哪里设置

    'delete'=>array(
         'imageUrl'=>Yii::app()->baseUrl.'/images/del.jpg',
         'options'=>array('width'=>'20px','height'=>'20px'),
    ),
    'update'=>array(
          'imageUrl'=>Yii::app()->baseUrl.'/images/del.jpg',
           'options'=>array('width'=>'50px','height'=>'20px'),
    ),
    
    $model=new Product('search');
    $this->widget('zii.widgets.grid.CGridView',array(
    'cssFile'=>Yii::app()->request->baseUrl.'/css/cgridview.css',
    'pager'=>array(              //通过pager设置样式   默认为CLinkPager 
    	'prevPageLabel'=>'上一页', 
    	'firstPageLabel'=>'首页',  //first,last 在默认样式中为{display:none}及不显示,通过样式{display:inline}即可 
    	'nextPageLabel'=>'下一页', 
    	'lastPageLabel'=>'末页', 
    	'header'=>'', 
    ), 
    'dataProvider'=>$model->search(),
    	array(
    		'name'=>'id',
    		'type'=>'raw',
    		'value'=>$data['id'],
    		'header'=>'编号',
    		'headerHtmlOptions' => array('width'=>'50px')),
    	array(
    		'name'=>'product_name',
    		'type'=>'raw',
    		'value'=>$data['product_name'],
    		'header'=>'产品名称',
    		'headerHtmlOptions' => array('width'=>'150px',)),
    	array(
    		'name'=>'category_id',
    		'type'=>'raw',
    		'value'=>$data['category_id'],
    		'header'=>'分类编号'),
    	array(
    		'name'=>'category.category_name',
    		'type'=>'raw',
    		'value'=>$data['category']['category_name'],
    		'header'=>"产品分类"),
    	array(
          'class'=>'CButtonColumn',
          'template'=>'{update} {delete}',
          'updateButtonOptions'=>array('title'=>'修改'),
          'deleteButtonOptions'=>array('title'=>'删除'),
          'header'=>'操作',
    	'buttons' => array(
    	  'delete'=>array(
    	      'imageUrl'=>Yii::app()->baseUrl.'/images/del.jpg',
    			  'options'=>array('width'=>'20px','height'=>'20px'),
    	  ),
    	  'update'=>array(
    	      'imageUrl'=>Yii::app()->baseUrl.'/images/del.jpg',
    		  'options'=>array('width'=>'50px','height'=>'20px'),
    	  ),
    	),
        ),
    ),
    ))
    

    CButtonColumn::renderButton 多传了一个参数,不知道修改了 会不会影响 有没有人也像我这样改过
    因为修改框架中的代码,担心会引起其他地方调用出问题。。
    因为我不知道有没有其他方式可以设置图片

    protected function renderButton($id,$button,$row,$data){
       if (isset($button['visible']) && !$this->evaluateExpression($button['visible'],array('row'=>$row,'data'=>$data)))
           return;
       $label=isset($button['label']) ? $button['label'] : $id;
       $url=isset($button['url']) ? $this->evaluateExpression($button['url'],array('data'=>$data,'row'=>$row)) : '#';
       $options=isset($button['options']) ? $button['options'] : array();
       if(!isset($options['title']))
           $options['title']=$label;
       if(isset($button['imageUrl']) && is_string($button['imageUrl'])){
    //             [color=Green]echo CHtml::link(CHtml::image($button['imageUrl'],$label),$url,$options);[/color]               
           echo CHtml::link(CHtml::image($button['imageUrl'],$label,$options),$url,$options);
       }else
           echo CHtml::link($label,$url,$options);
       }
    

    这个是CHTML::image方法

    public static function image($src,$alt='',$htmlOptions=array()){
        $htmlOptions['src']=$src;
        $htmlOptions['alt']=$alt;
        return self::tag('img',$htmlOptions);
    }
    
  • 回复于 2012-07-16 21:59 举报

    有没有人回答。。。。

    等其他方式修改button 换了图片的大小。。

    如果有不修改框架,只需要修改样式 或者其他的就可以的..有没有呀。。。

  • 回复于 2012-07-18 07:06 举报

    加一个style属性试试。

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