2013-09-11 4 views
0

Я использую gridview для отображения набора данных. Все работает отлично, за исключением того, что я не знаю, как реализовать ссылку на ссылку в gridview. Ниже приведен код для представления, я использую Yiibooster TbGridView, но код должен быть почти идентичным для CGridview.Readmore ссылка в GridView

<?php $this->widget('bootstrap.widgets.TbGridView', array(
    'dataProvider'=>$dataProvider, 
    'columns'=>array(
     'startdate' 
     'status', 
      'description', 
     array(
     'htmlOptions' => array('nowrap'=>'nowrap'), 
     'class'=>'bootstrap.widgets.TbButtonColumn', 
     'template' => '{view},{update}', 
      'viewButtonUrl'=>'Yii::app()->createUrl("status/view",$params=array("id"=>$data["id"]))', 
      'updateButtonUrl'=>'Yii::app()->createUrl("status/update",$params=array("id"=>$data["id"]))', 
    ) 
    ))) 
    ?> 

Здесь, я не хочу, чтобы отобразить полное описание, но подстроку из него и вместе с этим кнопка называется «читать далее», который пользователь может нажать, чтобы отобразить весь «описание». Любые идеи о том, как его реализовать?

ответ

2
<?php $this->widget('bootstrap.widgets.TbGridView', array(
'dataProvider'=>$dataProvider, 
'columns'=>array(
    'startdate' 
    'status', 
     array(
      'name' => 'description' 
      'value' => 'substr($data->description,0,100)."...<div class=more-data>$data->description</div><a href=javascript:void(0); id=readMore>Read More</a>', 
      'type' => 'raw', 
     ), 
    array(
    'htmlOptions' => array('nowrap'=>'nowrap'), 
    'class'=>'bootstrap.widgets.TbButtonColumn', 
    'template' => '{view},{update}', 
     'viewButtonUrl'=>'Yii::app()->createUrl("status/view",$params=array("id"=>$data["id"]))', 
     'updateButtonUrl'=>'Yii::app()->createUrl("status/update",$params=array("id"=>$data["id"]))', 
) 
))) 
?> 

Не беспокойтесь о кавычках HTML-тегах свойств. он будет добавлен в браузер автоматически. после этого сделать некоторые CSS хитрости

<style type='text/css'> 
.more-data{ display:none} 
</style> 

затем с JQuery по щелчку на этой якорной тег с именем далее вы можете сделать блок отображения для этого DIV или может поставить любой эффект, который вы хотите.

Возможно, это поможет вам

1

попробовать этот

<?php $this->widget('bootstrap.widgets.TbGridView', array(
'dataProvider'=>$dataProvider, 
'columns'=>array(
    'startdate' 
    'status', 
    array(
       'value' => 'Model::function($data->description)', 
       'type' => 'raw', 
       'name' => 'description' 
      ), 
    array(
    'htmlOptions' => array('nowrap'=>'nowrap'), 
    'class'=>'bootstrap.widgets.TbButtonColumn', 
    'template' => '{view},{update}', 
     'viewButtonUrl'=>'Yii::app()->createUrl("status/view",$params=array("id"=>$data["id"]))', 
     'updateButtonUrl'=>'Yii::app()->createUrl("status/update",$params=array("id"=>$data["id"]))', 
) 
))) 
?> 

изменения Модель с названием модели и функции с функцией в этой модели и передать соответствующие параметры.

то в таком использовании функции подстроки() и добавить ссылку на страницу, где полное описание доступно и вернуть всю строку

Смежные вопросы