0

gridview を使用して一連のデータを表示しています。グリッドビュー内で続きを読むリンクを実装する方法についての手がかりがないことを除いて、すべてが正常に機能します。以下はビューのコードです。Yiibooster TbGridView を使用していますが、CGridview のコードもほぼ同じです。

<?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"]))',
    )
    )))
    ?>

ここでは、完全な説明を表示するのではなく、その部分文字列と、ユーザーがクリックして「説明」全体を表示できる「続きを読む」というボタンを表示します。それを実装する方法についてのアイデアはありますか?

4

2 に答える 2

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>

次に、read moreという名前のアンカータグをクリックしてjqueryを使用すると、このdivの表示ブロックを作成したり、必要な効果を適用したりできます。

お役に立てるかも

于 2013-09-11T20:03:11.053 に答える
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"]))',
)
)))
?>

モデルの名前でモデルを変更し、そのモデルの関数で関数を変更し、適切なパラメーターを渡します。

次に、その関数で substr() を使用し、完全な説明が利用可能なページへのリンクを追加し、文字列全体を返します

于 2013-09-11T17:28:06.570 に答える