2012-11-27 28 views
0

我有网CDataProvider柱长

<?php $this->widget('bootstrap.widgets.TbGridView',array(
    'id'=>'products-grid', 
    'htmlOptions'=>array('class'=>'grid-view table-striped',), 
    'dataProvider'=>$model->search(), 
    'columns'=>$columns, 
)); ?> 

$模型 - >搜索()

return new CActiveDataProvider($this, array(
      'criteria' => $criteria, 
      'pagination' => array('pageSize' => 50) 
     )); 

,我需要限制每个列的长度。例如,如果列1的值为

的 “Hello World”

和第一列配置变量是7的话,我需要呈现

“你好w^... “

我想,我可以解决我的行为问题,对吗?请帮帮我!

回答

1

CDataColumn value option帮助我

foreach($columns as &$column) 
{ 
    if($column['name'] == 'number') 
    { 
     $column['value'] = 'strlen($data->number) > 14 ? substr($data->number, 0, 14)."..." : $data->number'; 
    } 
} 
+1

干得好!! ....和好的工作 – coolguy

1

更改搜索功能this..not知道它最快

public function search(){ 
$returnarray = array(); 
$dataset = new CActiveDataProvider($this, array(
      'criteria' => $criteria, 
      'pagination' => array('pageSize' => 50) 
     )); 
    foreach($dataset as $ds){ 
     $returnarray['your_table_index'] = (strlen($ds->your_element) > 8) ? substr($ds->your_element,0,7).'...' : $ds->your_element; 
    } 
    return $returnarray; 
} 
+0

是的,我明白了,怎么减的字符串。但是我可以在哪里编写这段代码?我只有'$ this->小部件('...');' – Ozerich

+0

您能否为我提供您正在使用哪个小部件的链接...可能是它有一些配置设置 – coolguy

+0

http://www.yiiframework。 com/doc/api/1.1/TbGridView的CGridView基本部件,没有长度配置 – Ozerich