0

我有网格

<?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 列有值

“你好世界”

第一列的配置变量是 7,然后我需要渲染

“你好W……”

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

4

2 回答 2

1

将您的搜索功能更改为此..不确定它是否最快

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;
}
于 2012-11-27T07:18:53.967 回答
1

CDataColumn 值选项对我有帮助

foreach($columns as &$column)
{
    if($column['name'] == 'number')
    {
         $column['value'] = 'strlen($data->number) > 14 ? substr($data->number, 0, 14)."..." : $data->number';
    }
}
于 2012-11-27T08:05:04.297 回答